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

PDOStatement::execute() връща true, но данните не се актуализират

Когато execute() връща true това означава, че изявлението е било „успешно“, но не означава, че е променило нещо. Това просто означава, че няма грешка.

  • Може да е съвпаднал с нула редове поради условия в клаузата WHERE. Това все още се счита за "успех". Можете да опитате SELECT със същата клауза WHERE и извлечете резултатите, за да потвърдите, че съответства на редове.

  • Може да е съвпаднал с един или повече редове, но стойностите, които задавате, вече са стойностите на тези редове. Можете да извикате $sth->rowCount() след като изпълните, за да разберете колко реда АКТУАЛИЗАЦИЯТА е засегната (това може да е по-малко от броя на съответстващите редове).

  • Ако имате повече от едно копие на тази таблица, трябва да проверите дали промяната е направена в базата данни, която четете. Понякога ми се случва -- забравям да променя конфигурационния файл на приложението и не осъзнавам, че актуализирам грешната база данни.

Оказа се, че това е проблемът -- вариант на третата точка:

  • Ако работите на повече от един сървър, проверете отново дали проверявате промените на правилния mysql сървър.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Вземете редове от mysql таблица към php масиви

  2. PDO получава последния вмъкнат идентификатор

  3. Вмъкване на няколко реда на mysql с помощта на php

  4. Грешка при отрицателна стойност в клаузата за ограничение

  5. Как се изпраща само събитие за щракване (div), когато се използва функцията jquery live?