【发布时间】:2017-12-15 22:54:20
【问题描述】:
这涉及到一个 Sqlite 数据库、PHP 7 和 PDO。查询代码为:
...
$stmt = $pdo->query('SELECT * FROM images');
while($row = $stmt->fetch(\PDO::FETCH_ASSOC)){
$images[] = [
"image_id" => $row["image_id"],
"date" => $row["date"],
"photographer" => $row["photographer"],
...
];
}
echo $stmt->rowCount() . " rows<br>";
echo count($images) . " images<br>";
var_dump($images);
return $images;
}
(注:这是基于http://www.sqlitetutorial.net/sqlite-php/query/。一旦这里描述的问题解决了,它将很快修改为做准备语句,枚举列等。)
回声报告“0 行”和“2 个图像”。 var_dump() 输出:
array(2) { [0]=> array(0) { } [1]=> array(14) { ["image_id"]=> ...
很明显,在外部数组的第一个位置有一个额外的空数组。在收集 $image 数组作为返回值的调用代码中,count($array) 给出 2 而不是 1(并且代码在每个换行符中都需要名称/值对)。
问题是,表中只有一行。这清楚地显示在命令行上:sqlite> select * from images; 得到一行并且:
sqlite> select count(*) as c from images;
1
这里有什么问题?
【问题讨论】:
标签: sql sqlite pdo count php-7