PHP JSON array from SQLite3


PHP JSON array from SQLite3

我正在尝试通过使用PHP将数据从SQLite3 db转换为JSON数组。我已经接近了,但是我好像做不对。

这是我得到的错误:PHP警告:PDOStatement::fetchAll()期望参数1是长,对象在…

谢谢!

<?php
$db = new PDO('sqlite:example.db');
$result = $db->query('SELECT * FROM test');
$json = array();
$result->setFetchMode(PDO::FETCH_ASSOC);
while ($data = $result->fetchall($result)){
$x = $data['Time'];
$y = $data['Temperature'];
$json[] = array( (int($x)), (int($y)) );
}
?>

已经修好了。谢谢你的帮助!

<?php
$db = new PDO('sqlite:example.db');
$result = $db->query('SELECT * FROM test');
$datapie = array();
$result->setFetchMode(PDO::FETCH_ASSOC);
while ($row = $result->fetch()) {
extract($row);
$datapie[] = array(floatval($Temperature), $Time);
}
$data = json_encode($datapie);
?>

变化:

$result->fetchall($result)

:

$result->fetch()

你有两个问题:fetchAll()的参数应该是一个获取模式,而不是一个结果。fetchAll()返回所有行,而不是一次返回一行。如果你在循环中调用,你可以使用fetch()

PDO的fetchAll函数,不期望查询本身作为参数。

检查这里的手动-你可以留空,或设置获取模式:

http://php.net/manual/en/pdostatement.fetchall.php