PDO - Methoden - Die PDOStatement-Klasse - Daten aufbereiten
1. Die Methoden
Um denn nun die entsprechenden Platzhalter umzuwandeln, bietet uns PDO drei verschiedene Methoden an. Als da wären.
bindValue
Diese Methode arbeitet praktisch genau so wie bind_param
von MySQLi.
$blubb = 1;
$blubber = 'blubber';
$query = 'INSERT INTO bla (blubb, blubber) VALUES (?, :blubber)';
...
$stmt -> bindValue(1, $blubb, [Typ]);
$stmt -> bindValue(':blubber', $blubber, [Typ]);
bindParam
Hier gelten dieselben Regeln wie bei bindValue
. Es gibt nur einen Unterschied. Die Parameter sind zunächst mal nur Referenzen,
die erst bei einem execute
ausgewertet werden. Was das im Detail soll, weiß ich auch noch nicht ganz.
$blubb = 1;
$blubber = 'blubber';
$query = 'INSERT INTO bla (blubb, blubber) VALUES (?, :blubber)';
...
$stmt -> bindParam(1, $blubb, [Typ]);
$stmt -> bindParam(':blubber', $blubber, [Typ]);
bindColumn
Das funktioniert in etwa wie bind_result
von MySQLi. Denn hier kann man die Spaltennamen der Tabellen an Variablen binden.
Auch hier kann man sowohl über die Reihenfolge als auch mit konkreten Namen arbeiten.
$query = 'SELECT bla, blubb FROM blubber';
...
$stmt -> bindColumn(1, $laber);
$stmt -> bindColumn('blubb', $schwall);
2. Typangaben
Im Gegensatz zu MySQLi hat man die Varianten natürlich mal wieder komplett umgebaut.
PARAM_BOOL
(Boolsche Variable)PARAM_INT
(Ganzzahl)PARAM_NULL
(NULL-Wert von MySQL)PARAM_STR
(Zeichenkette)
Bei diesen Werten handelt es sich um Konstanten, die als dritter Parameter an die jeweiligen Methoden übergeben werden können. Bei
PARAM_STR
gibt es zusätzlich die Möglichkeit, als vierten Parameter noch die Länge vorzugeben.
$query = 'SELECT bla, blubb FROM blubber';
...
$stmt -> bindColumn(1, $laber, PDO::PARAM_INT);
$stmt -> bindColumn('blubb', $schwall, PDO::PARAM_STR, 5);
Wichtig!
In MySQLi konnte man beim Typ d
auch Fließkommazahlen angeben. In PDO ist das leider nicht möglich, da PARAM_INT
nur mit Ganzzahlen klarkommt. In so einem Fall muss man leider mit PARAM_STR
arbeiten.
zurück zum vorherigen Abschnitt weiter zum nächsten Abschnitt