sqlite3 db上的php查询只返回第一行

dar*_*man 5 php sqlite

我用PHP创建了一个Sqlite3数据库:

$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')");
Run Code Online (Sandbox Code Playgroud)

但是当我尝试获取所有行时:

$result = $db->query('SELECT * FROM foo');
var_dump($result->fetchArray());
Run Code Online (Sandbox Code Playgroud)

它只返回db中的第一行:

array(2) { [0]=> string(14) "This is a test" ["bar"]=> string(14) "This is a test" }
Run Code Online (Sandbox Code Playgroud)

我不确定为什么它不会返回所有行.

Mec*_*are 7

您需要迭代行.你只会获得当前行.

while($row=$result->fetchArray()){
   // Do Something with $row
   print_r($row);
}
Run Code Online (Sandbox Code Playgroud)

PHP手册在页面上有一个很好的例子