2

我正在尝试使用 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)) );
}
?>
4

3 回答 3

4

现在可以工作了。谢谢你的帮助!

<?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);

?>
于 2013-05-20T08:57:15.130 回答
1

改变:

$result->fetchall($result)

至:

$result->fetch()

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

于 2013-05-18T09:46:02.570 回答
0

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

在此处查看手册 - 您可以将其留空,或设置获取模式:

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

于 2013-05-18T09:43:50.843 回答