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

Come sapere se una query MySQL UPDATE non riesce perché le informazioni fornite corrispondono ai dati già nel database?

Un altro motivo per cui otterresti 0 righe interessate è se UPDATE l'istruzione non corrisponde a nessuna riga. Ad esempio:

UPDATE MyTable SET field = 'content' WHERE id = 1234;

Fornisce 0 righe interessate se non esiste alcuna riga con id = 1234 . Neanche questo è un errore, è solo un UPDATE che non corrisponde a nessuna riga.

Il modo per rilevare questo caso è usare SELECT per verificare che esista tale riga. Se puoi confermare la riga esiste, ma il UPDATE detto che interessava 0 righe, quindi sai che i valori che hai provato a modificare erano in realtà le righe già nel database.

SELECT COUNT(*) FROM MyTable WHERE id = 1234;

Ma la distinzione potrebbe non essere importante. Potresti segnalare un errore se mysql_error() dice che ce n'è uno, come suggerisce @BoltClock.*Se non ci sono errori puoi semplicemente segnalare "nessuna modifica" all'utente.