Während des Entwicklungsprozesses treten häufig verschiedene Fehler in Datenbankinteraktionen auf, und wie diese Fehler fangen und debuggen, ist eine der Techniken, die Entwickler beherrschen müssen. In PHP bietet die MySQLI -Erweiterung eine sehr bequeme Möglichkeit, Datenbankabfragen auszuführen und zu debuggen. Unter ihnen ist MySQLI_STMT :: $ ERROR eine sehr nützliche Eigenschaft, die uns helfen kann, Fehlerinformationen während der Ausführung von Vorverarbeitungsanweisungen zu erhalten.
In diesem Artikel wird vorgestellt, wie Sie MySQLI_STMT :: $ ERROR verwendet, um Fehler in MySQLI -Abfragen zu fangen und zu debuggen, und Ihnen dabei helfen, besser zu verstehen, wie Sie sie über tatsächliche Codebeispiele verwenden.
MySQLI_STMT :: $ ERROR ist ein Attribut der MySQLI_stmt -Klasse in MySQLI. Es gibt die Fehlermeldung zurück, die durch die jüngste Ausführung der Vorverarbeitungsanweisung ( MySQLI_STMT ) generiert wird. Wenn in der Ausführung kein Fehler auftritt, wird eine leere Zeichenfolge zurückgegeben.
In Datenbankoperationen ist das Erfassen von Fehlermeldungen für das Debuggen sehr wichtig, insbesondere wenn komplexe SQL -Abfragen oder Verbindungsprobleme. MySQLI_STMT :: $ ERROR bietet eine einfache Möglichkeit, diese Fehler zu fangen.
Stellen Sie eine Datenbankverbindung her
Zunächst müssen wir über die MySQLI -Klasse eine Verbindung zur Datenbank herstellen.
<?php
$host = 'localhost';
$username = 'root';
$password = '';
$database = 'test_db';
// Erstellen Sie eine Datenbankverbindung
$conn = new mysqli($host, $username, $password, $database);
// Überprüfen Sie, ob die Verbindung erfolgreich ist
if ($conn->connect_error) {
die("Verbindung ist fehlgeschlagen: " . $conn->connect_error);
}
?>
Bereiten Sie SQL -Anweisungen vor
Als nächstes verwenden wir die Funktion mySQLi_prepare (), um eine SQL -Anweisung vorzubereiten und zu überprüfen, ob die Anweisung erfolgreich erstellt wird.
<?php
$sql = "INSERT INTO users (username, email) VALUES (?, ?)";
$stmt = $conn->prepare($sql);
if (!$stmt) {
die("SQL Erklärung Vorbereitung ist fehlgeschlagen: " . $conn->error);
}
?>
Binden Sie Parameter
In MySQLI können wir Variablen an Parameter in SQL -Abfragen über die Funktion bind_param () binden. Stellen Sie sicher, dass der gebundene Parametertyp mit dem erwarteten Typ übereinstimmt.
<?php
$username = 'john_doe';
$email = 'john@example.com';
$stmt->bind_param("ss", $username, $email); // Der erste Parameter "ss" Parameter, die zwei String -Typen darstellen
?>
Führen Sie eine Abfrage aus und fangen Sie einen Fehler auf
Jetzt sind wir bereit, die Vorverarbeitungserklärung auszuführen. Wenn die Abfrageausführung fehlschlägt, können wir detaillierte Fehlerinformationen über MySQLI_STMT :: $ ERROR erhalten.
<?php
if (!$stmt->execute()) {
echo "Die Abfrage versäumte es, die Abfrage auszuführen: " . $stmt->error;
} else {
echo "Dateninsertion erfolgreich!";
}
?>
MySQLI_STMT :: $ ERROR ist beim Debuggen sehr nützlich, insbesondere wenn SQL -Abfragen nicht wie erwartet sind. Es kann Ihnen helfen, die von der MySQL -Datenbank zurückgegebene Fehlermeldung zu erhalten. Wenn beispielsweise ein Syntaxfehler vorliegt, existiert die Tabelle nicht, oder der Datentyp stimmt nicht überein. MySQLI_STMT :: $ ERROR liefert eine detaillierte Fehlerbeschreibung.
Angenommen, wir führen eine Abfrage aus, die die Fehlersyntax enthält:
<?php
$sql = "INSERT INTO users (username, email) VALUE (?, ?)";
$stmt = $conn->prepare($sql);
if (!$stmt) {
die("SQL Erklärung Vorbereitung ist fehlgeschlagen: " . $conn->error);
}
$stmt->bind_param("ss", $username, $email);
if (!$stmt->execute()) {
echo "Die Abfrage versäumte es, die Abfrage auszuführen: " . $stmt->error; // Hier werden detaillierte Fehlerinformationen angezeigt
}
?>
Bei Ausführungsfehler kann $ stmt-> Fehler eine Fehlermeldung zurückgeben, die wie folgt ähnelt:
Die Abfrage versäumte es, die Abfrage auszuführen: Unknown column 'VALUE' in 'field list'
Dies zeigt, dass wir die falsche Syntax in der SQL -Anweisung verwenden und die korrekte Syntax anstelle des Werts Werte sein sollte.
Syntaxfehler
Fehlereingabeaufforderungen: Unbekannte Spalte , Sie haben einen Fehler in Ihrer SQL -Syntax .
Problemumgehung: Überprüfen Sie, ob die Spaltennamen, Tabellennamen und Schlüsselwörter in der SQL -Abfrage korrekt geschrieben sind.
Datentyp -Nichtübereinstimmung
Fehlereingabeaufforderungen: Falscher Ganzzahlwert , Daten für die Spalte abgeschnitten .
Problemumgehung: Stellen Sie sicher, dass der eingehende Parametertyp mit dem Spaltentyp in der Datenbanktabelle übereinstimmt. Wenn beispielsweise eine String an eine Spalte übergeben wird, die erwartet wird, dass es sich um eine Ganzzahl handelt, tritt ein Fehler des Typs von Typenfehlanpassungen auf.
Verbindung ist fehlgeschlagen
Fehleraufforderung: MySQL Server ist verschwunden .
Problemumgehung: Überprüfen Sie, ob die Datenbankverbindung noch gültig ist, insbesondere wenn sie nicht lange verwendet wird.
Durch die Verwendung von MySQLI_STMT :: $ ERROR können wir Fehler in MySQLI -Abfragen effektiv fangen und debuggen. Es hilft den Entwicklern nicht nur, Probleme schnell zu lokalisieren, sondern verbessert auch die Robustheit von Cod- und Fehlerbehandlungsfunktionen. Während des Entwicklungsprozesses sind gute Fehler- und Debugging -Methoden der Schlüssel zur Verbesserung der Effizienz. Ich hoffe, dieser Artikel kann Ihnen helfen , MySQLI_STMT :: $ ERROR besser zu verstehen und zu verwenden, wodurch Sie bei der Entwicklung von MySQLI -Anwendungen praktischer werden.
Verwandte Tags:
mysqli_stmt