Parametrierte Abfragen: Ein Schutzschild gegen SQL-Injection
Parametrisierte Abfragen verstehen
Eine parametrisierte Abfrage, auch als vorbereitete Anweisung bekannt, ist eine Technik zum Erstellen von SQL-Anweisungen. Es trennt die dynamischen Daten (Parameter) von den festen Teilen der Abfrage. Dies ermöglicht eine effiziente Parametereinstellung während der Ausführung.
PHP und MySQL: Eine praktische Demonstration
Lassen Sie uns dies anhand einer SQL-Abfrage veranschaulichen, die einen Parameter für die E-Mail-Adresse eines Benutzers enthält:
<code class="language-sql">SELECT * FROM users WHERE email = 'foo@example.com'</code>
Implementierung mit MySQL
<code class="language-php"><?php $mysqli = new mysqli('localhost', 'username', 'password', 'database'); $stmt = $mysqli->prepare("SELECT * FROM users WHERE email = ?"); $stmt->bind_param('s', 'foo@example.com'); $stmt->execute(); $result = $stmt->get_result(); while ($row = $result->fetch_assoc()) { // Process the retrieved data... } $stmt->close(); ?></code>
Implementierung mit PDO
<code class="language-php"><?php $pdo = new PDO('mysql:host=localhost;dbname=database', 'username', 'password'); $stmt = $pdo->prepare("SELECT * FROM users WHERE email = ?"); $stmt->bindParam(1, 'foo@example.com', PDO::PARAM_STR); $stmt->execute(); $result = $stmt->fetchAll(); foreach ($result as $row) { // Process the retrieved data... } ?></code>
Hauptvorteile parametrisierter Abfragen:
Das obige ist der detaillierte Inhalt vonWie verhindern parametrisierte Abfragen die SQL-Injection?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!