Prepared Statement

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Ein Prepared Statement ist eine sogenannte vorbereitete Anweisung für ein Datenbanksystem. Im Gegensatz zu gewöhnlichen Statements enthält es noch keine Parameterwerte. Stattdessen werden dem Datenbanksystem Platzhalter übergeben.

Mittels Prepared Statements können SQL-Injections effektiv verhindert werden, da das Datenbanksystem die Gültigkeit von Parametern prüft, bevor diese verarbeitet werden.

Soll ein Statement mit unterschiedlichen Parametern mehrere Male (z. B. innerhalb einer Schleife) auf dem Datenbanksystem ausgeführt werden, können Prepared Statements einen Geschwindigkeitsvorteil bringen, da das Statement schon vorübersetzt im Datenbanksystem vorliegt und nur noch mit den neuen Parametern ausgeführt werden muss.

Beispiel eines Prepared Statement in Java:

PreparedStatement ps = connection.prepareStatement(
    "SELECT user, password FROM tbl_user WHERE (user=?)"
); // Statement wird erzeugt
ps.setString(1, username); // Parameter werden übergeben
ResultSet rs = ps.executeQuery(); //Statement wird ausgeführt.

Beispiel eines Prepared Statement in PHP mit PHP Data Objects[1]:

<?php
$stmt = $dbh->prepare("SELECT user, password FROM tbl_user WHERE (user=:user)");
$stmt->bindParam(':user', $user);
 
// eine Zeile abfragen
$user = 'Alice';
$stmt->execute();
 
// eine weitere Zeile mit anderen Werten abfragen
$user = 'Bob';
$stmt->execute();
?>

Weblinks[Bearbeiten]

Einzelnachweise[Bearbeiten]

  1. Prepared Statements und Stored Procedures. Abgerufen am 25. September 2011.