Aktueller Standort: Startseite> Neueste Artikel> Verwenden Sie $ errno und mySQLI_STMT, um festzustellen, ob die Vorverarbeitungsanweisung fehlschlägt

Verwenden Sie $ errno und mySQLI_STMT, um festzustellen, ob die Vorverarbeitungsanweisung fehlschlägt

M66 2025-06-05

Vorverarbeitungsanweisungen bieten eine sichere Möglichkeit, SQL -Injektionsangriffe bei der Verwendung von PHP für Datenbankvorgänge zu verhindern. Mit der MySQLI -Erweiterung können Sie Vorverarbeitungsanweisungen über das Objekt von MySQLI_STMT ausführen. Bei der Ausführung von Vorverarbeitungsanweisungen muss manchmal festgestellt werden, ob die Aussage erfolgreich ausgeführt wird. Mysqli :: $ errno und mySQLI_STMT sind leistungsstarke Tools für uns, um Ausführungsfehler zu beurteilen.

In diesem Artikel wird vorgestellt, wie diese beiden verwendet werden, um festzustellen, ob eine Vorverarbeitungsanweisung fehlgeschlagen ist, und entsprechende Codebeispiele bereitzustellen.

1. Was sind MySQLi :: $ errno und mySQLi_stmt ?

  • Mysqli :: $ errno : Dies ist eine Eigenschaft der MySQLI -Klasse, die den in der letzten MySQL -Operation aufgetretenen Fehlercode zurückgibt. Wenn kein Fehler auftritt, beträgt der Wert 0 .

  • MYSQLI_STMT : Dies ist eine Klasse, die von der MySQLI -Erweiterung bereitgestellt wird und eine Vorverarbeitungsanweisung darstellt. Sie können SQL -Abfragen über diese Klasse ausführen und Parameter übergeben.

Durch diese beiden Tools können Sie überprüfen, ob nach Ausführung einer SQL -Abfrage ein Fehler aufgetreten ist, wodurch die damit verbundenen Ausnahmen behandelt werden.

2. Verwenden Sie MySQLI :: $ errno , um festzustellen, ob ein Fehler vorliegt

Schauen wir uns zunächst an, wie Sie MySQLI :: $ errno verwenden, um festzustellen, ob die Datenbankoperation fehlschlägt.

 <?php
// Stellen Sie eine Verbindung zur Datenbank her
$mysqli = new mysqli('localhost', 'username', 'password', 'database_name');

// Überprüfen Sie, ob die Verbindung erfolgreich ist
if ($mysqli->connect_error) {
    die("Connection failed: " . $mysqli->connect_error);
}

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

// Überprüfen Sie, ob die Vorverarbeitungserklärung erfolgreich ist
if ($stmt === false) {
    die("Prepare failed: " . $mysqli->errno . " - " . $mysqli->error);
}

// Binden Sie Parameter
$email = 'test@example.com';
$stmt->bind_param('s', $email);

// Ausführungsanweisung
$stmt->execute();

// Überprüfen Sie, ob die Ausführung erfolgreich ist
if ($stmt->errno) {
    echo "Error occurred: " . $stmt->errno . " - " . $stmt->error;
} else {
    echo "Query executed successfully!";
}

// Aussagen und Verbindungen schließen
$stmt->close();
$mysqli->close();
?>

3. Erklären Sie den Code

  • Wir stellen zuerst eine Verbindung zur MySQL -Datenbank her. Wenn die Verbindung fehlschlägt, überprüfen Sie den Fehler über $ mysqli-> connect_error .

  • Anschließend erstellen wir eine SQL -Abfrageanweisung und prüfen, ob Prepet () erfolgreich ist. Wenn es fehlschlägt, verwenden wir $ MySQLI-> errno, um den Fehlercode zu erhalten und die Fehlermeldung auszugeben.

  • Nach dem Binden der Parameter führen wir die Anweisung aus und verwenden $ stmt-> errno, um festzustellen, ob während des Ausführungsprozesses Fehler vorliegen. Wenn der Wert von ERRNO größer als 0 ist, bedeutet dies, dass die Ausführung fehlgeschlagen ist. Sie können die Fehlerdetails über $ STMT-> Fehler erhalten.

4. Fehlerbehandlung mit MySQLI_STMT

Zusätzlich zu $ ​​MySQLI :: $ errno bietet das Objekt MySQLI_STMT selbst auch Errno- und Fehlerattribute , um den Ausführungsstatus der Vorverarbeitungserklärung zu beurteilen. Wir können mySQLI_STMT :: errno verwenden, um den Fehlercode während der Ausführung zu erfassen.

 <?php
// Eine Verbindung erstellen
$mysqli = new mysqli('localhost', 'username', 'password', 'database_name');

// Überprüfen Sie, ob die Verbindung erfolgreich ist
if ($mysqli->connect_error) {
    die("Connection failed: " . $mysqli->connect_error);
}

// Vorbereitungserklärung
$stmt = $mysqli->prepare("INSERT INTO users (name, email) VALUES (?, ?)");

// Binden Sie Parameter
$name = 'John Doe';
$email = 'john@example.com';
$stmt->bind_param('ss', $name, $email);

// Ausführungsanweisung
if (!$stmt->execute()) {
    echo "Execute failed: " . $stmt->errno . " - " . $stmt->error;
} else {
    echo "Insert successful!";
}

// Schließen Sie die Ressource
$stmt->close();
$mysqli->close();
?>

Im obigen Beispiel gibt $ stmt-> execute () einen booleschen Wert zurück. Wenn die Ausführung fehlschlägt, wird die Fehlermeldung über $ stmt-> errno und $ stmt-> Fehler ausgegeben.

5. Zusammenfassung

  • Verwenden Sie MySQLI :: $ errno und mySQLI_STMT, um Fehler während der MySQL -Ausführung effektiv zu erfassen.

  • Durch MySQLI_STMT :: Errno und Mysqli_stmt :: Fehler kann die Ursache des Fehlers eindeutig erhalten werden und die entsprechende Verarbeitung kann durchgeführt werden.

  • Diese Tools können Ihnen helfen, Fehler in den Datenbankvorgängen zu debugieren und Fehler zu bewältigen, um die Robustheit und Sicherheit Ihres Codes sicherzustellen.

Ich hoffe, dieser Artikel wird für Sie mit MySQLI -Erweiterung für Datenbankvorgänge hilfreich sein!