Wenn ich den folgenden Code ausführe, erhalte ich die Fehlermeldung
%Vor%Fataler Fehler: Nicht abgefangene Ausnahme 'mysqli_sql_exception' mit Nachricht 'Kein Index in Abfrage verwendet / vorbereitet Aussage '
Und das ist das fähige Schema -
%Vor% Sehen Sie sich diesen Fehlerbericht an: #35450
mysqli extension meldet zu viele Warnungen
Zitieren einige Sätze einer Notiz:
Mysqli Erweiterung wirft zu viele Warnungen. Beispiel: "SELECT * FROM Tabelle "führt zu einer Warnung: "Warnung: mysqli :: query (): Kein Index Wird in Abfrage / vorbereiteter Anweisung verwendet SELECT * FROM Tabelle ... "
Und, eine andere Anmerkung zitierend, die interessant scheint:
Verwenden Sie
mysqli_report()
, um das zu deaktivieren.
Humph, leider, diese Funktion ist veraltet ...
Der schwerwiegende Fehler ist nicht in MySQL; Die fehlende Indexbenachrichtigung ist eine Warnung mit relativ geringem Schweregrad.
Der fatale Fehler ist in Ihrem PHP-Code aufgrund der folgenden drei Bedingungen:
mysqli_sql_exception
für alle Fehler und Warnungen wegen Ihrer mysqli_report(MYSQLI_REPORT_ALL);
-Zeile. try{}
-Block mit einem entsprechenden catch(){}
-Block), und nicht abgefangene Ausnahmen sind fatal. Sie können nicht viel über die erste tun, wie in der anderen Antwort erwähnt. Sie können das Problem entweder beheben, indem Sie Ihre mysqli_report(...)
-Einstellung auf MYSQLI_REPORT_STRICT
oder MYSQLI_REPORT_OFF
oder tatsächlich auf etwas anderes als MYSQLI_REPORT_ALL
setzen.
(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)
als gute Alternative verwenden könnten)
Für Best Practices und in Kombination damit sollten Sie es ordnungsgemäß beheben, indem Sie in Ihrem Code try{}
und catch(){}
entsprechend verwenden.
mysqli_report (MYSQLI_REPORT_ALL ^ MYSQLI_REPORT_INDEX);
Deaktiviert "Bericht, wenn in einer Abfrage kein Index oder ungültiger Index verwendet wurde", behält jedoch andere Berichte bei.
Tags und Links sql php mysql mysqli mysql-insert-id