sql >> Databasteknik >  >> RDS >> Mysql

mysqli_affected_rows för UPDATE returnerar ibland 0 vid full radmatchning

Du kan använda mysqli_info för att få den information du behöver för att skilja mellan de två fallen. mysqli_info($link) efter en UPDATE query returnerar en sträng ungefär som

Rows matched: 1 Changed: 1 Warnings: 0

som du sedan kan analysera, till exempel med 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";

Utdata:

12 rows matched, 8 rows changed

Du kan sedan använda värdena i $matched och $changed för att skilja mellan dina två fall.




  1. Migrera Google Cloud SQL för MySQL till en lokal server

  2. Metadatalås på MySQL 5.7, kan du inte hitta låsprocessen?

  3. implementera LIKE-fråga i PDO

  4. PDO kan inte ansluta fjärransluten mysql-server