Den fatale fejl er ikke i MySQL; underretningen om manglende indeks er en advarsel med relativt lav sværhedsgrad.
Den dødelige fejl er i din PHP-kode på grund af følgende tre forhold:
- mysqli rapporterer en masse af advarsler, selv for relativt harmløse forhold.
- Du kaster
mysqli_sql_exceptionfor alle fejl og advarsler på grund af dinmysqli_report(MYSQLI_REPORT_ALL);linje. - Din PHP-kode fanger ikke denne undtagelse (dvs. den er ikke i et
try{}blok med en passendecatch(){}blok), og ufangede undtagelser er fatale.
Du kan ikke gøre meget ved den første, som nævnt i det andet svar. Så du kan rette det enten ved at ændre din mysqli_report(...) indstilling til MYSQLI_REPORT_STRICT eller MYSQLI_REPORT_OFF , eller faktisk noget andet end MYSQLI_REPORT_ALL .
(edit:w3d's kommentar nedenfor giver en god forklaring på hvorfor, og foreslår, at du kan bruge mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT) som et godt alternativ)
For bedste praksis, og i kombination med dette, bør du rette det korrekt ved at bruge try{} og catch(){} passende i din kode.