Heim >Datenbank >MySQL-Tutorial >Zeigt der Rückgabewert „prepare()' von MySQLi nur Vorbereitungsfehler oder auch Ausführungsfehler an?
Beim Einsatz von MySQLi zum Ausführen von SQL-Abfragen ist es entscheidend, die Fehlerberichterstattung effektiv zu handhaben. Im bereitgestellten Codeausschnitt, in dem der Rückgabewert der stmt_init()-Methode zum Erkennen von Fehlern während der SQL-Vorbereitung verwendet wird, bestehen anhaltende Zweifel:
Zeigt der Rückgabewert der Prepare-Anweisung ausschließlich Fehler in SQL an? Anweisungsvorbereitung oder auch Ausführungsfehler?
Um dies zu verdeutlichen, betrachten Sie die folgende alternative Fehlerbehandlung Ansatz:
if($stmt_test->execute()) $errorflag=true;
Dieser Code prüft auf Fehler während der Anweisungsausführung. Es ist jedoch nicht notwendig, diese zusätzliche Prüfung zu implementieren, da der Rückgabewert der Prepare()-Methode sowohl Vorbereitungs- als auch Ausführungsfehler umfasst.
Um eine umfassende Fehlerberichterstattung sicherzustellen, empfiehlt es sich, die folgende Zeile zu Ihrem Verbindungscode hinzuzufügen :
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
Dies ermöglicht die Meldung aller MySQL-Fehler. Dadurch entfällt die Notwendigkeit, Rückgabewerte zu überprüfen und Anweisungen direkt zu schreiben, wie im folgenden Beispiel gezeigt:
$stmt = $mysqli->prepare("INSERT INTO testtable VALUES (?,?,?)"); $stmt->bind_param('iii', $x, $y, $z); $stmt->execute();
Im Falle eines Fehlers zu irgendeinem Zeitpunkt wird eine PHP-Ausnahme ausgelöst . Diese Ausnahme kann wie jeder andere PHP-Fehler behandelt oder gemeldet werden. Durch die entsprechende Konfiguration der PHP-Fehlerberichterstattung können Sie sicherstellen, dass Fehler während der Entwicklung auf dem Bildschirm angezeigt und auf dem Produktionsserver protokolliert werden.
Das obige ist der detaillierte Inhalt vonZeigt der Rückgabewert „prepare()' von MySQLi nur Vorbereitungsfehler oder auch Ausführungsfehler an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!