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. 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:
// Statement wird erzeugt
PreparedStatement ps = connection.prepareStatement(
"SELECT user, password FROM tbl_user WHERE user = ?"
);
// Parameter werden übergeben
ps.setString(1, username);
// Statement wird ausgeführt.
ResultSet rs = ps.executeQuery();
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
- Ausführliches Prepared-Statements-Tutorial (PHP und mysqli)
- PHP/MySQL: Mehr Sicherheit und erhöhte Performance durch MySQLi und Prepared Statements. (PDF; 419 kB)
Einzelnachweise
- ↑ Prepared Statements und Stored Procedures. Abgerufen am 25. September 2011.
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.