Hauptmenü

Untermenü

PDO - Methoden - Die PDOStatement-Klasse - Daten holen

1. Die Methoden

PDO bietet vier Möglichkeiten, um sich die Daten eines Prepared Statements oder eines normalen query zu holen. Genau wie bei MySQLi oder der MySQL-Erweiterung wird das Ergebnis ebenfalls in einer Variable zwischengespeichert.

2. fetchAll

Auf diese Methode habe ich euch ja schon hingewiesen. Und sie ist mein persönlicher Liebling, da sie alle Daten in einem Rutsch holt. Das Ergebnis wird dann als Array zurückgegeben. OK, diese Zuneigung basiert auf meiner persönlichen Art zu programmieren, also sei es drum.


$query 'SELECT bla, blubb FROM blubber WHERE ID > ?';
...
$stmt  -> execute();
// Holt alle Datensätze
$result $stmt->fetchAll();
print_r($result);

3. fetch

Hiermit besorgt man sich immer nur den nächstmöglichen Datensatz als Array. Auf die Details gehe ich im folgenden Abschnitt ein.


$query 'SELECT bla, blubb FROM blubber WHERE ID > ?';
...
$stmt  -> execute();
// Holt sich den nächsten Datensätze
$result $stmt->fetch();
print_r($result);

4. fetchObject

Funktioniert genau so wie fetch, nur dass das Ergebnis als Objekt zurückkommt. Auf die Details gehe ich ebenfalls erst im folgenden Abschnitt ein.


$query 'SELECT bla, blubb FROM blubber WHERE ID > ?';
...
$stmt  -> execute();
// Holt sich den nächsten Datensätze als Objekt
$result $stmt->fetchObject();
print_r($result);

5. fetchColumn

Was diese Methode bezwecken soll, ist mir heute noch ein Rätsel. Damit holt man sich vom nächstmöglichen Datensatz den Wert einer Spalte. Und bei der Auswahl, kann man nur mit Zahlen arbeiten. Also 0 für die erste Spalte des SQL-Statements, 1 für die nächste und so fort.


$query 'SELECT bla, blubb FROM blubber WHERE ID > ?';
...
$stmt  -> execute();
// Holt sich von nächsten Datensatz das Feld blubb
$result $stmt->fetchColumn(1);
print_r($result);

Wenn ihr mich fragt, so lasst die Finger von dieser Methode. Die ist Humbug. Zum Feintuning der anderen komme ich jetzt.

zurück zum vorherigen Abschnitt weiter zum nächsten Abschnitt