Ceci implique une base de données Sqlite, PHP 7 et PDO. Le code de requête est:Ligne supplémentaire, vierge depuis PDO select on 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;
}
(Note:.. Ceci est basé sur http://www.sqlitetutorial.net/sqlite-php/query/ Il sera révisé prochainement faire des déclarations préparées, qui énumèrent Col., etc., une fois que le problème décrit ici est résolu)
Les échos indiquent "0 lignes" et "2 images". Les sorties var_dump()
:
array(2) { [0]=> array(0) { } [1]=> array(14) { ["image_id"]=> ...
Il est donc clair, il y a un tableau supplémentaire, vide dans la première position dans le tableau extérieur. Dans le code appelant, qui recueille le tableau $image
en tant que valeur de retour, count($array)
donne 2 not 1 (et le code attend des paires nom/valeur dans chaque saut de ligne).
Le problème est qu'il n'y a qu'une seule ligne dans la table. Cela apparaît clairement sur la ligne de commande: sqlite> select * from images;
obtient une ligne et:
sqlite> select count(*) as c from images;
1
Quel est le problème ici?