我正在使用这个PHP代码来获取行,但它正在收到错误
$db = new PDO('sqlite:db/logs');
$result = $db->exec("SELECT * FROM users");
while($row = $result->fetch(SQLITE_ASSOC))
{
}
我正在使用sqlite3和php5,我想知道
我是否使用正确的代码连接到数据库我还使用了sqlite.open()
但是它也出错了?
此new PDO('sqlite:db/logs')
与数据库连接,但为什么每次都会创建新数据库
我的主要问题是我遇到错误,其中while循环是
在非对象
上调用成员函数fetch()
请帮我解决这个问题我是php和sqlite的新手
答案 0 :(得分:4)
您无法使用 PDO while
,您可以使用程序方法来使用它。
一些参考:REFERENCE LINK
您可以将$db->exec
用于insert
& update
查询。不是在你想要获取记录的时候。
尝试以下更改。
$db = new PDO('sqlite:db/logs');
//connection code here
$result = $db->query("SELECT * FROM users"); //replace exec with query
foreach($result as $row){
$row['field1'];
$row['field2'];
}
答案 1 :(得分:2)
PDO::exec()
返回的行数不是您可以获取的对象。
PDO :: exec()返回由您发出的SQL语句修改或删除的行数。如果没有行受到影响,PDO :: exec()将返回0.
相反,您可以使用query()
:
$result = $db->query('SELECT * FROM users');
foreach($result as $row)
{
print_r($row);
}