Wanneer execute()
retourneert true het betekent dat de verklaring "succesvol" was, maar het betekent niet dat het iets heeft veranderd. Het betekent alleen dat er geen fout was.
-
Het komt mogelijk overeen met nul rijen vanwege voorwaarden in de WHERE-component. Dat wordt nog steeds als een 'succes' beschouwd. Je kunt een
SELECT
. proberen met dezelfde WHERE-component en haal de resultaten op om te bevestigen dat deze overeenkomen met rijen. -
Het kan overeenkomen met een of meer rijen, maar de waarden die u instelt, zijn al de waarden in die rijen. U kunt
$sth->rowCount()
. aanroepen nadat je het hebt uitgevoerd, om erachter te komen hoeveel rijen de UPDATE beïnvloedt (dit kan minder zijn dan het aantal overeenkomende rijen). -
Als u meer dan één exemplaar van deze tabel heeft, moet u controleren of de wijziging is aangebracht in de database die u aan het lezen bent. Het overkomt me soms -- ik vergeet een applicatieconfiguratiebestand te wijzigen en ik realiseer me niet dat ik de verkeerde database bijwerk.
Dit bleek het probleem te zijn -- een variatie op het derde punt:
- Als u op meer dan één server werkt, controleer dan ook nogmaals of u de wijzigingen op de juiste mysql-server controleert.