tags:

views:

29

answers:

2

I get the following error below. Line 53 is if(mysqli_num_rows($r) == 1) {. How can I fix this problem.

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

Here is the PHP MySQL code.

$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) {
+1  A: 

mysqli_query returns a boolean for UPDATE queries. See http://php.net/manual/en/mysqli.query.php. You probably want something like this instead:

if (mysqli_affected_rows() == 1) {
    // ...
}
Tim Fountain
A: 

Because mysqli_query() returns TRUE (1) on UPDATE. mysqli_num_rows() expects some rows from successful SELECT, SHOW, DESCRIBE or EXPLAIN queries.

So:

if ($r) {

or use mysqli_affected_rows()

Māris Kiseļovs