【发布时间】:2013-05-18 09:29:39
【问题描述】:
我正在尝试使用 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)) );
}
?>
【问题讨论】:
-
尝试删除带有
$result->setFetchMode(PDO::FETCH_ASSOC)的行,并在while 行上执行此操作:while ($data = $result->fetchAll(PDO::FETCH_ASSOC)) -
你不会在循环中调用
fetchAll,它会一次将所有结果作为二维数组返回。 -
好点,电话应该是
$result->fetch(),而不是$result->fetchAll()。或者,您可以先调用$data = $result->fetchAll(),然后将while 循环转换为foreach 循环。