我使用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')");
但是当我尝试获取所有行时:
$result = $db->query('SELECT * FROM foo');
var_dump($result->fetchArray());
它只返回db中的第一行:
array(2) { [0]=> string(14) "This is a test" ["bar"]=> string(14) "This is a test" }
我不确定为什么它没有返回所有行。
答案 0 :(得分:7)
您需要遍历行。你只会获得当前行。
while($row=$result->fetchArray()){
// Do Something with $row
print_r($row);
}
The PHP Manual在页面上有一个很好的例子
答案 1 :(得分:2)
fetchArray()仅获取第一行结果。如果要获取其他行,请对fetchArray进行其他调用(可能在循环中)。
答案 2 :(得分:0)
请求在一个数组中返回所有结果的答案。能够将所有结果放在一个对象中,将它们按数组条目拆分,然后将它们放回一个数组中似乎很浪费。