Get number of rows matched by UPDATE query with PHP mysqli

前端 未结 6 1987
醉话见心
醉话见心 2020-12-01 21:28

The older mysql extension has the CLIENT_FOUND_ROWS connection flag, but I couldn\'t find any equivalent for mysqli.

I have an up

相关标签:
6条回答
  • 2020-12-01 21:47

    it's in the options of mysqli_real_connect.

    Also introduced in PDO::MySQL in PHP 5.3.

    0 讨论(0)
  • 2020-12-01 21:48

    I did an explode function on the results returned from the info command and then took index[1].

    $affected = explode(":", $connection->info);
    $rowsAffected = $affected[1];
    
    0 讨论(0)
  • 2020-12-01 21:52

    From the official docs, looks like this can be achieved by building the PDO object like this:

    new PDO($dsn, $u, $p, array(PDO::MYSQL_ATTR_FOUND_ROWS => true));
    
    0 讨论(0)
  • 2020-12-01 21:56

    Also SELECT ROW_COUNT() can give the number of rows affected by update query.

    0 讨论(0)
  • 2020-12-01 22:06

    I used the following code:

    // Parse the digits from the info string that has the following format:
    // Rows matched: 0 Changed: 0 Warnings: 0
    preg_match_all('!\d+!', $mysqli->info, $m);
    return $m[0][0]; 
    
    0 讨论(0)
  • 2020-12-01 22:07

    You could run SELECT COUNT(*) with the same WHERE clause before running the UPDATE. That will give you a count of the number of rows that would be matched.

    0 讨论(0)
提交回复
热议问题