Mysql
 sql >> база данни >  >> RDS >> Mysql

mysqli_affected_rows за UPDATE понякога връща 0 при пълно съвпадение на редове

Можете да използвате mysqli_info за да получите необходимата информация, за да разграничите двата случая. mysqli_info($link) след UPDATE query ще върне низ нещо като

Rows matched: 1 Changed: 1 Warnings: 0

които след това можете да анализирате, например с помощта на 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";

Изход:

12 rows matched, 8 rows changed

След това можете да използвате стойностите в $matched и $changed за да разграничите двата си случая.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Amazon RDS не може да изпълни командата SET GLOBAL

  2. Синтаксис на MySQL CREATE FUNCTION

  3. python и mysql на mac os x

  4. Актуализирайте колоната с произволна стойност

  5. Сложната MySQL заявка дава неправилни резултати