Mysql
 sql >> Datenbank >  >> RDS >> Mysql

mysqli_affected_rows für UPDATE gibt manchmal 0 bei vollständiger Zeilenübereinstimmung zurück

Sie können mysqli_info verwenden um die Informationen zu erhalten, die Sie benötigen, um zwischen den beiden Fällen zu unterscheiden. mysqli_info($link) nach einem UPDATE Die Abfrage gibt eine Zeichenfolge in der Art von

zurück
Rows matched: 1 Changed: 1 Warnings: 0

die Sie dann z. B. mit preg_match parsen können :

// $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";

Ausgabe:

12 rows matched, 8 rows changed

Sie können dann die Werte in $matched verwenden und $changed um zwischen Ihren beiden Fällen zu unterscheiden.