PHP错误:mysqli_num_rows()期望参数1为mysqli_result,boolean给出[duplicate]

可能重复:mysql_fetch_array()期望参数1是资源,在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
MySQL Error: " . mysqli_error($mysqli)); if(mysqli_num_rows($r) == 1) {

回答(2)

2 years ago

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

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

2 years ago

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

所以:

if ($r) {

或使用mysqli_affected_rows()