Aktueller Standort: Startseite> Neueste Artikel> Verwenden Sie $ errno, um festzustellen, ob MySQLI :: preped () erfolgreich ist

Verwenden Sie $ errno, um festzustellen, ob MySQLI :: preped () erfolgreich ist

M66 2025-05-28

In PHP ist MySQLI :: Preped () eine sehr wichtige Funktion für die Vorbereitung von SQL -Anweisungen bei der Verwendung von MySQL -Datenbanken. In vielen Fällen möchten wir sicherstellen, dass der Vorbereitungsprozess von SQL -Anweisungen nicht falsch ist, insbesondere wenn der Datenbankvorgang fehlschlägt. MySQLI :: $ errno ist ein Attribut, mit dem wir feststellen können, ob ein Fehler vorliegt. Es kann uns helfen, festzustellen, ob die Methode Prepe () erfolgreich ausgeführt wird.

1. Was ist MySQLI :: Prepe () ?

MySQLI :: Preped () ist eine Funktion, die zur Vorbereitung von SQL -Anweisungen verwendet wird. Der Vorteil der Vorverarbeitung besteht darin, dass die SQL -Injektion verhindern und die Effizienz von Datenbankvorgängen verbessert werden kann. In der tatsächlichen Verwendung senden wir normalerweise SQL -Anweisungen an den MySQL -Server über die Funktion PREAP () , die vom MySQL -Server analysiert und optimiert werden.

Der folgende Code zeigt beispielsweise, wie Sie MySQLI :: Preped () verwenden, um eine SQL -Anweisung vorzubereiten:

 <?php
$mysqli = new mysqli("localhost", "username", "password", "database");

// Check connection
if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: " . $mysqli->connect_error;
    exit();
}

$stmt = $mysqli->prepare("SELECT * FROM users WHERE email = ?");
?>

2. Verwenden Sie MySQLI :: $ errno, um festzustellen, ob Preped () erfolgreich ist

Bei Verwendung von MySQLi :: Preped () wird bei der SQL -Anweisung ein Fehler vorliegen, Preped () gibt False zurück und Sie können detaillierte Fehlerinformationen erhalten, indem Sie MySQLI :: $ errno überprüfen.

 <?php
// Vorbereiten SQL Stellungnahme
$stmt = $mysqli->prepare("SELECT * FROM users WHERE email = ?");

if ($stmt === false) {
    // Wenn prepare() zurückkehren false,Das heißt SQL Stellungnahme有错误
    echo "MySQLi prepare failed. Error number: " . $mysqli->errno . "\n";
    echo "Error message: " . $mysqli->error . "\n";
} else {
    // Wenn prepare() Erfolg,Weitere Operationen durchführen
    echo "SQL prepared successfully!\n";
}
?>

In diesem Beispiel wird $ MySQLi-> errno einen Fehlercode zurückgeben, wenn Preped () fehlschlägt. Sie können diesen Fehlercode verwenden, um den Grund für den Fehler zu verstehen. $ mysqli-> fehler liefert spezifische Fehlerinformationen, mit denen Entwickler Probleme schnell finden können.

3.. Common MySQLI :: $ Errno Fehlercode

Wenn MySQLI :: Preped () Ausführung fehlschlägt, wird MySQLI :: $ errno auf einen Wert ungleich Null gesetzt. Hier sind einige häufige Fehlercodes:

  • 1049 : Die Datenbank existiert nicht.

  • 1054 : Das Feld existiert nicht (zum Beispiel wird der in Select verwendete Spaltenname falsch geschrieben).

  • 1064 : SQL -Syntaxfehler.

  • 1146 : Die Tabelle existiert nicht.

Sie können diese Fehlercodes verwenden, um bestimmte Probleme zu bestimmen, z. B.:

 if ($stmt === false) {
    switch ($mysqli->errno) {
        case 1049:
            echo "Die Datenbank existiert nicht!";
            break;
        case 1064:
            echo "SQL Syntaxfehler!";
            break;
        default:
            echo "Unbekannter Fehler: " . $mysqli->errno;
            break;
    }
}

4. Komplette Beispielcode

 <?php
$mysqli = new mysqli("localhost", "username", "password", "database");

// Überprüfen Sie die Verbindung
if ($mysqli->connect_errno) {
    echo "Verbindung ist fehlgeschlagen: " . $mysqli->connect_error;
    exit();
}

// Vorbereiten SQL Stellungnahme
$stmt = $mysqli->prepare("SELECT * FROM users WHERE email = ?");

if ($stmt === false) {
    // Wenn prepare() zurückkehren false,Druckenfehlermeldung
    echo "MySQLi prepare failed. Error number: " . $mysqli->errno . "\n";
    echo "Error message: " . $mysqli->error . "\n";
} else {
    // WennErfolg
    echo "SQL prepared successfully!\n";
    $stmt->close();
}

$mysqli->close();
?>