PDO - Methoden - Die PDOStatement-Klasse
1. Eine gute Nachricht
Bei dieser Klasse haben sich die PHP-Entwickler mal so richtig ins Zeug gelegt und viele Verbesserungen vorgenommen, die einem die Arbeit wirklich erleichtern.
Die schlechte Nachricht
... ist, dass man sich im Vergleich zu MySQLi sehr stark umorientieren muss, eben weil vieles anders ist als bei MySQli. Aber keine Angst, das schaffen wir schon.
2. Prepared Statements ausführen
Am grundsätzlichen Prinzip hat sich natürlich nichts geändert. Die Reihenfolge ist dieselbe.
- SQL-Statement mit Platzhaltern vorbereiten
- Platzhalter mit Werten versehen
- Statement ausführen
3. Vorbereiten
Das geschieht wie gehabt mit prepare
. Auch an der Referenzvariablen hat sich nichts geändert.
$pdo = new PDO($server, $user, $password);
$query = '...';
$stmt = $pdo -> prepare($query);
Genau wie query
liefert auch prepare
ein Objekt der PDOStatement
-Klasse zurück. Und über diese
Variable steuern wir dann die entsprechenden Methoden an.
4. Werte setzen
Hier hat sich im Vergleich zu MySQLi so viel getan, dass ich auf die Details erst im kommenden Abschnitt eingehe. Vom Prinzip her läuft das nach wie vor so.
$pdo = new PDO($server, $user, $password);
$query = 'SELECT bla FROM blubb WHERE id > [Platzhalter]';
$stmt = $pdo -> prepare($query);
$stmt -> bindFunktion([Platzhalter], [Variable], [TYP]);
Für die Merkbefreiten
Die bindFunktion
gibt es natürlich nicht. In diesem Beispiel ist das nur ein Alias für die Methoden, die tatsächlich
existieren. Aber wie schon gesagt, das kommt später.
5. Ausführung
Das geschieht wie gehabt mittels der Methode execute
. Ein komplettes Prepared Statement sieht also prinzipiell so aus.
$pdo = new PDO($server, $user, $password);
$query = 'SELECT bla FROM blubb WHERE id > ?';
$stmt = $pdo -> prepare($query);
$stmt -> bindFunktion([Platzhalter], [Variable], [TYP]);
$stmt -> execute();
zurück zum vorherigen Abschnitt weiter zum nächsten Abschnitt