С относительной новизной для AJAX, и теперь я только начинаю изучать PDO, добавленный уровень ReSTler меня полностью ошеломил. Моделируя приведенный ниже код из образцов Restler, я не знаю, как изменить формат вывода с того, что PDO возвращает , на то, что ожидают Restler и Highcharts.
Как изменить этот код, чтобы перейти от текущего формата к требуемому? (Результаты обычно составляют 5-10 тысяч записей, если это влияет на обработку результата MySQL.)
Фрагмент кода ReSTler API:
$sql = "SELECT ....."
$this->db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
try {
$stmt = $this->db->query($sql);
return $stmt->fetchAll();
} catch (PDOException $e) {
throw new RestException(502, 'Listing History: ' . $e->getMessage());
}
Текущий формат вывода(включает нежелательные] имена столбцов):
[
{
"chart_date": "1118966400000",
"bandwidth": "10.01",
"views": "101"
},
{
"chart_date": "1119225600000",
"bandwidth": "20.02",
"views": "101"
},
Желаемый формат вывода(числовой и без имен столбцов):
[
[
1118966400000,
10.01,
101
],
[
1119225600000,
20.02,
202
],
Редактировать, используя предложенныйfetch(PDO::FETCH_NUM)
:
Согласно ответу @Ricardo Lohmann, я попробовал fetch(PDO::FETCH_NUM), который ДЕЙСТВИТЕЛЬНО удалил имена столбцов, но все возвращаемые столбцы кажутся строковыми, а не числовыми, как на самом деле являются данные, поэтому попробуйте это , давая мне правильный тип данных - является ли эта часть PDO односторонним возвратом строки?
while ($row = $stmt->fetch(PDO::FETCH_NUM)) {
$array[$x][0] = intval( $row[0] );
$array[$x][1] = intval( $row[1] );
$array[$x][2] = intval( $row[2] );
$x++;
}
return $array;