Der schwerwiegende Fehler liegt nicht in MySQL; Die fehlende Indexbenachrichtigung ist eine Warnung mit relativ niedrigem Schweregrad.
Die tödliche Fehler in Ihrem PHP-Code, aufgrund der folgenden drei Bedingungen:
- mysqli meldet viel von Warnungen, auch für relativ harmlose Bedingungen.
- Sie werfen
mysqli_sql_exception
für alle Fehler und Warnungen aufgrund Ihresmysqli_report(MYSQLI_REPORT_ALL);
Linie. - Ihr PHP-Code fängt diese Ausnahme nicht ab (d. h. er befindet sich nicht in einem
try{}
mit einem entsprechendencatch(){}
blockieren Block), und nicht abgefangene Ausnahmen sind fatal.
Sie können nicht viel gegen die erste tun, wie in der anderen Antwort erwähnt. Sie können es also entweder beheben, indem Sie Ihren mysqli_report(...)
ändern Einstellung auf MYSQLI_REPORT_STRICT
oder MYSQLI_REPORT_OFF
, oder tatsächlich etwas anderes als MYSQLI_REPORT_ALL
.
(Bearbeiten:Der Kommentar von w3d unten gibt eine gute Erklärung dafür und schlägt vor, dass Sie mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT)
verwenden könnten als gute Alternative)
Für Best Practices und in Kombination damit sollten Sie es richtig beheben, indem Sie try{}
verwenden und catch(){}
entsprechend in Ihrem Code.