【问题标题】:Strange behavior with mysqli::querymysqli::query 的奇怪行为
【发布时间】: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

标签: mysql mysqli


【解决方案1】:

只要查询在语法上正确并且 DBMS 运行正常 - 它总是会返回结果。零行结果集仍然是结果。

在您的情况下,您需要检查 0 - 凭据不正确,1 - 正确

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-17
    • 1970-01-01
    • 2016-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多