- Prepared Statement
-
Ein Prepared Statement ist eine sogenannte vorbereitete Anweisung für ein Datenbanksystem. Im Gegensatz zu gewöhnlichen Statements enthält es noch keine Parameterwerte. Statt dessen 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
- Prepared Statements mit JDBC
- PHP/MySQL: Mehr Sicherheit und erhöhte Performance durch MySQLi und Prepared Statements (PDF)
Einzelnachweise
- ↑ Prepared Statements und Stored Procedures. Abgerufen am 25. September 2011.
Wikimedia Foundation.