W3docs

prepare

In diesem Artikel besprechen wir die Funktion mysqli_prepare() in PHP, die verwendet wird, um eine SQL-Anweisung für die Ausführung vorzubereiten.

PHP mysqli_prepare() Funktion

In diesem Artikel besprechen wir die Funktion mysqli_prepare() in PHP, die verwendet wird, um eine SQL-Anweisung für die Ausführung vorzubereiten.

Einführung in die mysqli_prepare() Funktion

Die Funktion mysqli_prepare() ist eine eingebaute Funktion in PHP, die verwendet wird, um eine SQL-Anweisung für die Ausführung vorzubereiten. Die Funktion mysqli_prepare() erstellt ein vorbereitetes Anweisungsobjekt und gibt eine Referenz auf dieses Objekt zurück. Vorbereitete Anweisungen sind ein leistungsstarkes Werkzeug für die Arbeit mit Datenbanken, da sie es ermöglichen, sichere, parametrisierte SQL-Abfragen zu schreiben.

Verwendung der mysqli_prepare() Funktion

Die Verwendung der Funktion mysqli_prepare() ist unkompliziert. Hier ist ein Beispiel:

Wie verwendet man die mysqli_prepare() Funktion?

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

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

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

if (!$stmt) {
    echo "Prepare failed: " . $mysqli->error;
    exit();
}

$id = 1;
$stmt->bind_param("i", $id); // "i" specifies that the variable is an integer

if (!$stmt->execute()) {
    echo "Execute failed: " . $stmt->error;
} else {
    // Note: get_result() requires the mysqlnd driver.
    // For other drivers, use mysqli_stmt_fetch() instead.
    $result = $stmt->get_result();
    while ($row = $result->fetch_assoc()) {
        // process the row
    }
}
$stmt->close();
$mysqli->close();
?>

In diesem Beispiel erstellen wir zunächst ein neues MySQLi-Objekt mithilfe der Klasse mysqli. Anschließend prüfen wir, ob die Verbindung erfolgreich war, indem wir die Eigenschaft connect_errno verwenden. Wenn die Verbindung erfolgreich war, definieren wir eine SQL-Abfrage, die alle Zeilen aus der Tabelle users auswählt, bei denen die Spalte id einem Platzhalterwert entspricht. Dann rufen wir $mysqli->prepare() mit dem Abfrage-String auf, um ein vorbereitetes Anweisungsobjekt zu erstellen, und überprüfen, ob die Vorbereitung erfolgreich war. Anschließend setzen wir die Variable $id auf 1 bevor wir sie mit $stmt->bind_param() an den Platzhalter binden. Das "i" im Typ-String gibt an, dass die gebundene Variable eine Ganzzahl ist. Weitere unterstützte Typen sind "s" für string, "d" für double und "b" für BLOB. Dann führen wir die vorbereitete Anweisung mit $stmt->execute() aus und fügen eine Fehlerbehandlung für den Fall hinzu, dass die Ausführung fehlschlägt. Anschließend rufen wir das Ergebnis mit $stmt->get_result() ab und durchlaufen die Zeilen mit $result->fetch_assoc(). Schließlich schließen wir die Anweisung und die Verbindung mit der Methode close().

Fazit

Zusammenfassend lässt sich sagen, dass die Funktion mysqli_prepare() ein leistungsstarkes Werkzeug für die Arbeit mit Datenbanken in PHP ist. Wenn Sie verstehen, wie die Funktion verwendet wird, können Sie sichere, parametrisierte SQL-Abfragen schreiben, die gegen SQL-Injection-Angriffe resistent sind.

Übung

Übung
Was trifft auf vorbereitete Anweisungen in PHP zu?
Was trifft auf vorbereitete Anweisungen in PHP zu?
Was this page helpful?