【问题标题】:myqli_num_rows not returning zeromysqli_num_rows 不返回零
【发布时间】:2014-06-19 11:23:18
【问题描述】:

有谁知道为什么没有结果时以下 mysqli_num_rows 不返回零?它没有显示“0”字符,而是什么都不显示。完全莫名其妙。编辑

   $result = mysqli_query($con,"
           SELECT LastName 
           AS sLast, FirstName
                AS sFirst
           FROM students
                 LEFT JOIN
                 (SELECT id, name
                 FROM employers)
                 a ON a.id = $e_id
           WHERE WK1 = a.name");
    while($row = mysqli_fetch_array($result)) { 
    $wk1 = mysqli_num_rows($result);
    echo $row['sLast'] .", ".$row['sFirst']."<br>";
    }

【问题讨论】:

标签: php sql select mysqli mysql-num-rows


【解决方案1】:

当没有行时,没有可取的内容,因此您的循环永远不会运行。尝试先获取 num_rows。

$wk1 = mysqli_num_rows($result);
while($row = mysqli_fetch_array($result)) {     
    echo $row['sLast'] .", ".$row['sFirst']."<br>";
}

【讨论】:

  • 太棒了!谢谢。
  • @PhilHowell 没问题,很乐意提供帮助。
【解决方案2】:
  1. mysqli_query 如果找到匹配的记录,将返回结果。
  2. 没有找到记录时返回false,所以在false的情况下不会返回0。

【讨论】:

  • mysqli_query 只会在错误时返回 false。如果没有行但查询成功,您将获得一个mysqli_result 对象。
  • 请在返回值主题中检查us3.php.net//manual/en/mysqli.query.php。我认为当没有找到记录时它返回 false
  • 从链接Returns FALSE on failure. For successful SELECT, SHOW, DESCRIBE or EXPLAIN queries mysqli_query() will return a mysqli_result object. 返回 0 行不是失败。您可以自己尝试一下。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-09-02
  • 1970-01-01
  • 2016-06-28
  • 1970-01-01
  • 2018-01-05
  • 1970-01-01
  • 2011-09-12
相关资源
最近更新 更多