Mysql
 sql >> Database >  >> RDS >> Mysql

Con PDO, come posso assicurarmi che un'istruzione UPDATE abbia avuto successo?

Dipende da cosa intendi per "successo". Se intendi che la query è stata eseguita senza fallire, allora PDO genererà un'eccezione in caso di errore o restituirà FALSE da PDOStatement::execute() , a seconda della modalità di errore impostata, quindi una query "riuscita" in quel caso sarebbe solo quella in cui il metodo di esecuzione non ha restituito FALSE o genera un'eccezione.

Se intendi "successo" in quanto in realtà sono state aggiornate righe (rispetto a 0 righe aggiornate), è necessario verificarlo utilizzando PDOStatement::rowCount() , che ti indicherà il numero di righe interessate dalla query precedente.

Avvertenza:per gli aggiornamenti in cui newvalue = oldvalue PDOStatement::rowCount() restituisce zero. Puoi usare

per disabilitare questo comportamento imprevisto.