由于 AJAX 相对较新,现在刚刚开始学习 PDO,增加的 ReSTler 级别让我完全困惑。从 Restler 示例中对以下代码进行建模,我不知道如何将输出格式从 PDO返回的内容更改为 Restler 和 Highcharts 所期望的内容 。
如何更改此代码以从当前格式变为所需格式?(如果这是处理 MySQL 结果的一个因素,结果通常是 5K-10K 记录。)
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;