Когато execute()
връща true това означава, че изявлението е било „успешно“, но не означава, че е променило нещо. Това просто означава, че няма грешка.
-
Може да е съвпаднал с нула редове поради условия в клаузата WHERE. Това все още се счита за "успех". Можете да опитате
SELECT
със същата клауза WHERE и извлечете резултатите, за да потвърдите, че съответства на редове. -
Може да е съвпаднал с един или повече редове, но стойностите, които задавате, вече са стойностите на тези редове. Можете да извикате
$sth->rowCount()
след като изпълните, за да разберете колко реда АКТУАЛИЗАЦИЯТА е засегната (това може да е по-малко от броя на съответстващите редове). -
Ако имате повече от едно копие на тази таблица, трябва да проверите дали промяната е направена в базата данни, която четете. Понякога ми се случва -- забравям да променя конфигурационния файл на приложението и не осъзнавам, че актуализирам грешната база данни.
Оказа се, че това е проблемът -- вариант на третата точка:
- Ако работите на повече от един сървър, проверете отново дали проверявате промените на правилния mysql сървър.