【发布时间】:2013-08-14 11:23:04
【问题描述】:
我在使用 mysqli::query 函数时遇到了一些奇怪的行为。我正在尝试执行查询,发现结果始终为真,即使查询应该返回 FALSE。
if($result = $mysqli-> query("SELECT id,name,password FROM xxx WHERE name='$name' AND password='$password' LIMIT 1"))
{
// I always end up here
}
我是 mysqli 的新手,但查询不应该在空结果集上返回 FALSE 吗?
【问题讨论】:
-
为什么你认为查询应该返回
false?只要查询在语法上是正确的并且 DBMS 运行正确 - 它总是会返回一个结果。零行结果集仍然是结果 -
结果中有 0 行。那仍然返回一个 mysqli_result 对象吗?
-
是的。 0 行是一个完全有效的结果。在您的情况下,您需要检查 0 - 不正确的凭据,1 - 正确
-
啊!谢谢!愚蠢的我:p