0
これには、SqliteデータベースのPHP 7とPDOが含まれます。クエリのコードは次のとおりです。PDOの余分な空白行Sqliteで選択
...
$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/に基づいてここで説明する問題が解決されるとなど、COLSを列挙、プリペアドステートメントを実行するために、すぐに改訂されます)
エコーは「0行」と「2画像」を報告します。 var_dump()
出力:
array(2) { [0]=> array(0) { } [1]=> array(14) { ["image_id"]=> ...
だからはっきり外側の配列の最初の位置に余分な、空の配列があります。 $image
の配列を戻り値として収集する呼び出しコードでは、count($array)
は2ではなく1を返します(また、各行に名前と値のペアが存在することを期待するコード)。
問題は、テーブルに行が1つしかないことです。これは、コマンドライン上で明確に表示されます:sqlite> select * from images;
は、1行を取得し、:
sqlite> select count(*) as c from images;
1
ここで間違っているのですか?