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_exceptionper tutti gli errori e avvisi dovuti al tuomysqli_report(MYSQLI_REPORT_ALL);linea. - Il tuo codice PHP non sta rilevando quell'eccezione (cioè non è in un
try{}blocco con uncatch(){}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.