Фаталната грешка не е в MySQL; липсващото известие за индекс е предупреждение с относително ниска сериозност.
Фаталният грешка във вашия PHP код поради следните три условия:
- mysqli отчита много на предупреждения, дори за относително безвредни условия.
- Изхвърляте
mysqli_sql_exceptionза всички грешки и предупреждения поради вашияmysqli_report(MYSQLI_REPORT_ALL);линия. - Вашият PHP код не улавя това изключение (т.е. не е в
try{}блок с подходящcatch(){}block), а неуловените изключения са фатални.
Не можете да направите много за първия, както е споменато в другия отговор. Така че можете да го поправите или като промените вашия mysqli_report(...) настройка на MYSQLI_REPORT_STRICT или MYSQLI_REPORT_OFF , или наистина нещо различно от MYSQLI_REPORT_ALL .
(редактиране:коментарът на w3d по-долу дава добро обяснение защо и предлага да използвате mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT) като добра алтернатива)
За най-добри практики и в комбинация с това, трябва да го коригирате правилно, като използвате try{} и catch(){} подходящо във вашия код.