Quando execute()
restituisce vero significa che l'affermazione ha avuto successo, ma non significa che abbia cambiato nulla. Significa solo che non c'è stato alcun errore.
-
Potrebbe aver trovato zero righe a causa delle condizioni nella clausola WHERE. Questo è ancora considerato un "successo". Puoi provare un
SELECT
con la stessa clausola WHERE e recupera i risultati per confermare che corrisponda alle righe. -
Potrebbe corrispondere a una o più righe, ma i valori che stai impostando sono già i valori su quelle righe. Puoi chiamare
$sth->rowCount()
dopo l'esecuzione, per scoprire quante righe UPDATE ha interessato (questo potrebbe essere inferiore al numero di righe corrispondenti). -
Se hai più di una copia di questa tabella, dovresti ricontrollare che la modifica sia stata apportata nel database che stai leggendo. A volte mi capita:mi dimentico di modificare un file di configurazione dell'applicazione e non mi rendo conto che sto aggiornando il database sbagliato.
Questo si è rivelato essere il problema -- una variazione sul terzo punto:
- Se lavori su più di un server, controlla anche di controllare le modifiche sul server MySQL corretto.