PHP-запрос на sqlite3 db возвращает только первую строку - PullRequest
5 голосов
/ 17 ноября 2011

Я создал базу данных Sqlite3 с PHP:

$db = new SQLite3('mysqlitedb.db');
$db->exec('CREATE TABLE foo (bar STRING)');
$db->exec("INSERT INTO foo (bar) VALUES ('This is a test')");
$db->exec("INSERT INTO foo (bar) VALUES ('This is another test')");

, но когда я пытаюсь получить все строки:

$result = $db->query('SELECT * FROM foo');
var_dump($result->fetchArray());

, он возвращает только первую строку в БД:

array(2) { [0]=> string(14) "This is a test" ["bar"]=> string(14) "This is a test" }

Я не уверен, почему он не возвращает все строки.

Ответы [ 3 ]

7 голосов
/ 17 ноября 2011

Вам нужно перебирать строки. Вы получите только текущий ряд.

while($row=$result->fetchArray()){
   // Do Something with $row
   print_r($row);
}

Руководство по PHP имеет хороший пример на странице

2 голосов
/ 17 ноября 2011

fetchArray () извлекает только первый ряд результатов.Если вы хотите получить дополнительные строки, сделайте дополнительные вызовы fetchArray (возможно, в цикле).

0 голосов
/ 14 марта 2013

Запрос ответа, где все результаты возвращаются в одном массиве. Кажется расточительным иметь возможность получить все результаты в одном объекте, разделить их по элементам массива и затем поместить их обратно в один массив.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...