In PHP kann die Verwendung der MySQLI -Erweiterung uns helfen, eine Verbindung zur Datenbank herzustellen und Abfragen auszuführen. Um die Sicherheit zu verbessern und die SQL -Injektion zu verhindern, liefert MySQLI vorbereitete Aussagen. In diesem Artikel werden wir erklären, wie die Funktion MySQLI :: STMT_INIT verwendet wird, um eine SQL -Vorverarbeitungsanweisung vorzubereiten und auszuführen.
Vorverarbeitungsanweisungen sind eine Methode zur Datenbankinteraktion. Sie können SQL -Anweisungen von Daten trennen, zuerst die Vorlage der SQL -Abfrage an die Datenbank senden und dann die Parameter an die Abfrage binden. Dies kann SQL -Injektionsangriffe verhindern und die Sicherheit verbessern.
MySQLI :: STMT_INIT ist eine Methode in der MySQLI -Klasse, mit der eine neue Vorverarbeitungsanweisung initialisiert wird. Es gibt ein MySQLi_stmt -Objekt zurück, mit dem Parameter gebunden und SQL -Abfragen ausgeführt werden können.
Hier sind die Schritte zur Vorbereitung und Ausführung von SQL -Vorverarbeitungsanweisungen mit der Funktion MySQLI :: STMT_INIT :
Zunächst müssen wir eine Verbindung zur MySQL -Datenbank herstellen. Sie können die MySQLI -Klasse verwenden, um eine Datenbankverbindung zu erstellen.
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "test_db";
// Eine Verbindung erstellen
$conn = new mysqli($servername, $username, $password, $dbname);
// Überprüfen Sie die Verbindung
if ($conn->connect_error) {
die("Verbindung ist fehlgeschlagen: " . $conn->connect_error);
}
?>
Initialisieren Sie ein neues Vorverarbeitungsanweisungsobjekt mit der Funktion MySQLI :: STMT_INIT . Dieses Objekt wird verwendet, um Parameter zu binden und SQL -Abfragen auszuführen.
<?php
// Initialisieren Sie Vorverarbeitungsanweisungen
$stmt = $conn->stmt_init();
// Überprüfen Sie, ob die Initialisierung erfolgreich ist
if (!$stmt) {
die("Die Initialisierung der Vorverarbeitungserklärung ist fehl: " . $conn->error);
}
?>
Verwenden Sie die Methode vorbereiten , um SQL -Abfrageanweisungen vorzubereiten. Angenommen, wir möchten eine einfache Auswahlabfrage ausführen und Benutzerinformationen aus der Datenbank abrufen.
<?php
$sql = "SELECT * FROM users WHERE email = ?";
$stmt->prepare($sql);
?>
Verwenden Sie die Methode Bind_param , um Variablen an Platzhalter ( ? ) In SQL -Abfrage zu binden. In diesem Beispiel werden wir einen Parameter des String -Typs (E -Mail des Benutzers) binden.
<?php
$email = "user@example.com";
$stmt->bind_param("s", $email); // "s" Repräsentiert den String -Typ
?>
Verwenden Sie die Methode ausführen , um die SQL -Abfrage auszuführen.
<?php
$stmt->execute();
?>
Nachdem die Abfrage erfolgreich ausgeführt wurde, können Sie die Methode Get_Result verwenden, um das Ergebnissatz zu erhalten und ein mySQLi_Result -Objekt zurückzugeben.
<?php
$result = $stmt->get_result();
// Holen Sie sich die Ergebnisse und zeigen Sie sie an
while ($row = $result->fetch_assoc()) {
echo "ID: " . $row['id'] . " - Name: " . $row['name'] . "<br>";
}
?>
Denken Sie nach Abschluss der Abfrage daran, die Vorverarbeitungsanweisung und die Datenbankverbindung zu schließen.
<?php
$stmt->close();
$conn->close();
?>
Durch die oben genannten Schritte können wir eine SQL -Vorverarbeitungsanweisung mit der MySQLI :: STMT_init -Funktion erfolgreich vorbereiten und ausführen. Vorverarbeitungsanweisungen verbessern nicht nur die Codesicherheit, verhindern die SQL -Injektionsangriffe, sondern auch die Effizienz der Datenbankabfragen, insbesondere wenn dieselben Abfragen mehrmals ausgeführt werden.
$url = "https://api.m66.net/data"; // Ersetzen Sie den Domainnamen durch m66.net