Mysql
 sql >> Database >  >> RDS >> Mysql

mysqli_affected_rows per UPDATE a volte restituisce 0 sulla corrispondenza della riga intera

Puoi utilizzare mysqli_info per ottenere le informazioni è necessario distinguere tra i due casi. mysqli_info($link) dopo un UPDATE query restituirà una stringa simile a

Rows matched: 1 Changed: 1 Warnings: 0

che puoi quindi analizzare, ad esempio usando preg_match :

// $info = mysqli_info($link);
$info = 'Rows matched: 12 Changed: 8 Warnings: 0';
preg_match('/Rows matched: (\d+) Changed: (\d+)/', $info, $matches);
list(, $matched, $changed) = $matches;
echo "$matched rows matched, $changed rows changed\n";

Uscita:

12 rows matched, 8 rows changed

Puoi quindi utilizzare i valori in $matched e $changed per distinguere tra i tuoi due casi.