PDO Fetch-Array wie MySQLi
Ich weiß, wie zu Holen ein PDO array, aber wie bekomme ich Daten von ihm wie Sie mit MySQLi ist fetch_array?
Beispielsweise
MySQLi
$query = $mysqli->query("SELECT * FROM `foo` WHERE `ID`='1'");
$array = $query->fetch_array();
Immer ein Ergebnis
echo $array['bar'];
Wie würden Sie tun dies mit PDO? Ich verstehe, dass Sie dies tun können:
PDO
$query = $pdo->prepare("SELECT * FROM `foo` WHERE `ID`='1'");
$query->execute();
$result = $query->fetchAll();
Immer das Ergebnis
echo $result['bar'];
Nicht wieder das gleiche wie MySQLi hat
Mache ich etwas falsch, und gibt es eine Möglichkeit, dies zu tun?
- Lesen
fetch_style
parameter php.net/manual/en/pdostatement.fetch.phpPDO::FETCH_ASSOC
gibt ein array indiziert durch die Spalte name zurückgegeben, die in Ihrer Ergebnismenge - Sie müssen verstehen, dass, während die
fetch_array()
iteriert über die gesamte Ergebnismenge und gibt eine Zeile in einer Zeit,fetchAll()
gibt die ganze Ergebnismenge. Tun Sie dies:$query->fetch(PDO::FETCH_ASSOC)
- Danke für die Anleitung.
- Etwas, das ich erinnere mich aus meiner PHP die Tage, die Sie nützlich finden können, ist mit
print_r()
- und/odervar_dump()
göttliche, die oft schlecht dokumentiert Datenstrukturen PHP an Ihnen wirft. - Nichts ist schlecht dokumentiert. Der erste Kommentator ist der link verweist auf eine korrekte Dokumentation.
- In diesem Fall nicht, Nein.
Du musst angemeldet sein, um einen Kommentar abzugeben.
fetchAll()
ist nicht das gleiche wiefetch_array()
.Du willst
fetch()
zu bekommen eine Zeile, nichtfetchAll()
die bekommt ALLE Zeilen.PDO::FETCH_ASSOC
weil die Standardeinstellung ist die Rückgabe ein array, das indiziert ist sowohl assoziativ als auch numerisch.PDO::
vor derFETCH_*
absolut notwendig? Und warum? Ich glaube, in der MySQLi-Sie brauchen nur zu analysieren, inFETCH_*
PDO
ist der name der Klasse, und dieFETCH_*
Sache ist eine Konstante.PDO
Klasse.PDO::FETCH_ASSOC
ist, wie Sie darauf zugreifen. Es ist 100% nötig 🙂MYSQLI::FETCH_*
?::
bedeutet einen statischen Zugang. Verwenden Sie->
(zB.$query->
). Das ist-Objekt-Kontext. Die Konstanten zugegriffen werden kann, die statisch in eine Klasse.