PHP SQLite3类'exec'函数在失败时不返回false

时间:2012-01-13 18:48:10

标签: php if-statement sqlite

我正在使用SQLite3,以及PHP内置的SQLite3类。基于我熟悉的其他mysql类,以下代码无法按照我期望的方式工作。 manual表示如果查询成功,exec方法应返回true,失败时返回false。但是,从我所看到的情况来看,情况似乎并非如此。

$udb = new SQLite3('app.sqlite');

if($udb->exec("DELETE FROM users WHERE id = $del") != FALSE)
    $message = 'Deleted User';
 else
    $message = 'Could not delete the user.';

我希望如果具有该ID的行不存在,查询将返回false或0或'0'。这些都不准确。事实上,我无法弄清楚函数返回的是什么。

有人可以帮忙查看这个错误检查if块应该是什么样的吗?

2 个答案:

答案 0 :(得分:4)

$udb->changes() > 0正是您要找的

http://php.net/manual/en/sqlite3.changes.php

答案 1 :(得分:0)

成功执行查询与返回失败时为FALSE 不同。

如果您的SQL无效,那么它将失败(查询),它将返回false。