这是php:
function getReadings($conn) {
$sql = $conn->prepare('Call getSensorReadings');
$sql->execute();
$result = $sql->fetchAll();
print json_encode($result);
}
$conn = connectUsingRoot();
getReadings($conn);
但是,当我运行它时,我得到的数据如下:
{
0: "Source1",
1: "36.11",
2: "19.39",
3: "2016-03-16 19:24:28",
source: "Source1",
temp: "36.11",
mois: "19.39",
timestamp: "2016-03-16 19:24:28"
}
MySQL很简单:
SELECT sourceName as source,
tempValue as temp,
moisValue as mois,
creation_time as 'timestamp'
FROM Reading r
ORDER BY creation_time;
为什么要添加额外的字段?查询是否运行两次?
fetchAll
第一个参数设置为 PDO::FETCH_ASSOC
或 PDO::FETCH_NUM
。默认情况下,它设置为 PDO::FETCH_BOTH
这为您提供此输出。
$result = $sql->fetchAll(PDO::FETCH_ASSOC);
有关FETCH
参数的详细信息
public array PDOStatement::fetchAll ([ int $fetch_style [, mixed $fetch_argument [, array $ctor_args = array() ]]] )
PDO::FETCH_BOTH(默认值):返回由两列编制索引的数组 结果集中返回的名称和 0 索引列号
对本语句使用 PDO::FETCH_ASSOC:
$stmt->fetchAll(PDO::FETCH_ASSOC);
或者更改全局行为:
$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);