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

Errore irreversibile:eccezione non rilevata 'mysqli_sql_exception' con messaggio 'Nessun indice utilizzato nella query/istruzione preparata'

L'errore fatale non è in MySQL; la notifica dell'indice mancante è un avviso di gravità relativamente bassa.

Il fatale l'errore è nel tuo codice PHP, a causa delle seguenti tre condizioni:

  • mysqli segnala un molto di avvertenze, anche per condizioni relativamente innocue.
  • Stai lanciando mysqli_sql_exception per tutti gli errori e avvisi dovuti al tuo mysqli_report(MYSQLI_REPORT_ALL); linea.
  • Il tuo codice PHP non sta rilevando quell'eccezione (cioè non è in un try{} blocco con un catch(){} appropriato block) e le eccezioni non rilevate sono fatali.

Non puoi fare molto per il primo, come menzionato nell'altra risposta. Quindi, puoi risolverlo cambiando il tuo mysqli_report(...) impostazione su MYSQLI_REPORT_STRICT o MYSQLI_REPORT_OFF , o in effetti qualcosa di diverso da MYSQLI_REPORT_ALL .

(modifica:il commento di w3d di seguito fornisce una buona spiegazione del perché e suggerisce che potresti usare mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT) come una buona alternativa)

Per le migliori pratiche, e in combinazione con questo, dovresti risolverlo correttamente utilizzando try{} e catch(){} correttamente all'interno del tuo codice.