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

Perché questa iniezione SQL ha esito positivo anche se l'istruzione SQL produce un errore di sintassi?

Le query vengono ancora eseguite perché mysql utilizza ; per delimitare ogni query e continuerà a eseguire le query anche quando si verifica un errore di sintassi se lo si consente. Eseguendo le query in SequelPro ricevo un messaggio sull'errore di sintassi e mi chiede se voglio continuare a eseguire tutte le query o interromperle. Tuttavia, eseguendoli direttamente nella riga di comando di MySQL, le query continuano a essere eseguite e MySQL fornisce solo un messaggio di errore e continua alla query successiva come previsto (la stessa cosa che accade con il codice PHP).