Bei Verwendung von PHP -Erweiterung von PHP für Datenbankvorgänge ist es unvermeidlich, dass bei der Ausführung von Datenbankabfragen Fehler auftreten. Insbesondere bei Verwendung von mySQLI_STMT_EXECUTE () , um Vorverarbeitungsanweisungen auszuführen, erklärt die Fehlermeldung manchmal nicht direkt die spezifische Ursache des Fehlers. Zu diesem Zeitpunkt müssen wir das Attribut von MySQLI :: $ errno verwenden, um uns zu helfen, den Fehler zu finden.
MySQLI :: $ errno ist eine Eigenschaft der MySQLI -Erweiterung in PHP, die den Fehlercode angibt, der in der letzten MySQL -Operation aufgetreten ist. Wenn bei der Ausführung von MySQLI_STMT_EXECUTE () ein Fehler auftritt, können Sie detaillierte Fehlercodes über MySQLI :: $ errno erhalten, wodurch Entwickler schnell Probleme finden.
MySQLI :: $ Errno und MySQLI :: $ error können uns helfen, Ausnahmen in MySQL -Datenbankvorgängen besser zu verstehen.
Häufige Ursachen von Fehlern können einschließen:
Syntaxfehler in der SQL -Anweisung.
Parameterbindungsfehler, wie die Bindung von nicht übereinstimmenden Datentypen.
Datenbankverbindungsprobleme.
Unzureichende Datenbankzugriffsberechtigungen usw.
Diese Fehler werden manchmal durch den zurückgegebenen Booleschen Wert oder MySQLI :: $ -Fehler aufgefordert. Um das Problem zu bestimmen, können wir MySQLI :: $ errno kombinieren, um den Fehlercode des Fehlers zu erhalten.
Wir können beurteilen, ob die Ausführung erfolgreich ist, indem wir den von MySQLI_STMT_EXECUTE () zurückgegebenen Booleschen Wert verwenden. Wenn FALSE zurückgegeben wird, bedeutet dies, dass die Ausführung fehlgeschlagen ist. Zu diesem Zeitpunkt können wir detaillierte Fehlerinformationen über MySQLI :: $ errno und MySQLI :: $ error erhalten.
<?php
// Erstellen Sie eine Datenbankverbindung
$mysqli = new mysqli("localhost", "username", "password", "database");
// Überprüfen Sie, ob die Verbindung erfolgreich ist
if ($mysqli->connect_error) {
die("Verbindung ist fehlgeschlagen: " . $mysqli->connect_error);
}
// Vorbereiten SQL Stellungnahme
$stmt = $mysqli->prepare("INSERT INTO users (username, email) VALUES (?, ?)");
// Binden Sie Parameter
$username = 'testuser';
$email = 'testuser@m66.net';
$stmt->bind_param("ss", $username, $email);
// 执行Stellungnahme
if (!$stmt->execute()) {
echo "Fehlercode: " . $stmt->errno . "<br>";
echo "Fehlermeldung: " . $stmt->error . "<br>";
} else {
echo "Erfolgreich einfügen!<br>";
}
// 关闭Stellungnahme和连接
$stmt->close();
$mysqli->close();
?>
Datenbankverbindung : Erstens erstellen wir eine Datenbankverbindung über New MySQLI () und überprüfen, ob die Verbindung erfolgreich ist.
SQL -Anweisung vorbereiten : Wir verwenden die Methode prepe (), um eine SQL -Insert -Anweisung zu erstellen, um Benutzerdaten einzufügen.
Parameter binden : Binden Sie die eingefügten Parameter durch die Methode Bind_param (), um den richtigen Datentyp zu gewährleisten.
Führen Sie die Anweisung aus und prüfen Sie auf Fehler : Wenn bei der Ausführung der Methode mySQLI_STMT_EXECUTE () FALS zurückgegeben wird, bedeutet dies, dass ein Ausführungsfehler aufgetreten ist. Wir können den Fehlercode über $ STMT-> errno und die Fehlerbeschreibung über $ stmt-> Fehler erhalten.
Wenn im obigen Code ein Fehler in der Ausführung vorliegt, geben wir den Fehlercode und die Fehlermeldung aus, um das Problem schnell zu finden.
Schließen Sie die Verbindung : Schließlich schließen wir die Vorverarbeitungsanweisung und die Datenbankverbindung.
Der von MySQLI :: $ errno erhaltene Fehlercode ist der von der MySQL -Datenbank zurückgegebene Standardfehlercode. Hier sind einige häufige Fehlercodes:
1045 : Zugriff für den Benutzer verweigert - unzureichender Datenbankzugriff.
1064 : Sie haben einen Fehler in Ihrer SQL -Syntax - SQL -Syntaxfehler.
1062 : Duplikateintrag - doppelte Daten einfügen und eindeutige Einschränkungen verletzen.
2002 : Eine Verbindung zum lokalen MySQL -Server kann keine Verbindung hergestellt werden - kann keine Verbindung zum MySQL -Server herstellen.
Diese Fehlercodes helfen uns, die Gründe für den Fehler des Datenbankvorgangs zu klären.
Über die Eigenschaft von MySQLI :: $ errno können wir schnell Fehlercodes in Datenbankoperationen abrufen und mit den Fehlerinformationen von MySQLI :: $ ERROR kombiniert werden, kann dies die Grundursache des Problems leichter finden. Wenn in mySQLI_STMT_EXECUTE () ein Fehler auftritt, überprüfen Sie zuerst den Rückgabewert und beheben Sie das Problem durch den Fehlercode weiter, wodurch die Entwicklungseffizienz verbessert und die Debugging -Zeit verkürzt wird.