PHP错误:mysqli_num_rows()期望参数1为mysqli_result,给定布尔值

时间:2010-10-10 10:27:26

标签: php mysql

  

可能重复:
  mysql_fetch_array() expects parameter 1 to be resource, boolean given in select

我在下面收到以下错误。第53行是if(mysqli_num_rows($r) == 1) {。我该如何解决这个问题。

PHP error: on line 53: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given

这是PHP MySQL代码。

$d = "UPDATE users SET del = 1, del_date = NOW() WHERE userid = '" . $_SESSION['userid'] . "'";
$r = mysqli_query ($mysqli, $d) or trigger_error("Query: $d\n<br />MySQL Error: " . mysqli_error($mysqli));

if(mysqli_num_rows($r) == 1) {

2 个答案:

答案 0 :(得分:5)

mysqli_query为UPDATE查询返回一个布尔值。见http://php.net/manual/en/mysqli.query.php。你可能想要这样的东西:

if (mysqli_affected_rows() == 1) {
    // ...
}

答案 1 :(得分:3)

因为mysqli_query()在UPDATE上返回TRUE(1)。 mysqli_num_rows()需要成功的SELECT,SHOW,DESCRIBE或EXPLAIN查询中的一些行。

所以:

if ($r) {

或使用mysqli_affected_rows()