PDOStatement :: fetchAll
PDOStatement :: fetchAll - gibt ein Array aller Zeilen in der Ergebnismenge (PHP 5> = 5.1.0, PECL gU> = 0.1.0)
Erklärung
Grammatik
array PDOStatement::fetchAll ([ int $fetch_style [, mixed $fetch_argument [, array $ctor_args = array() ]]] )
Parameter
fetch_style
Wie die nächste Zeile zu steuern, wird an den Aufrufer zurückgegeben. Dieser Wert muss PDO :: FETCH_ * Konstanten in einer Reihe, ist der Standardwert für die PDO :: ATTR_DEFAULT_FETCH_MODE (Standard PDO :: FETCH_BOTH).
Um eine Ergebnismenge zurück, die ein Array aller Werte in einer einzigen Spalte enthält, müssen Sie PDO :: FETCH_COLUMN angeben. Holen Sie sich die gewünschten Spalten durch Spaltenindex Parameter angeben.
Möchten Sie das Ergebnis Satz von eindeutigen Werten in einer Spalte zu bekommen, müssen Sie PDO :: FETCH_COLUMN und PDO :: FETCH_UNIQUE bit- oder.
Um eine Spalte zurückgeben basierend auf den angegebenen Wert des assoziativen Arrays gruppiert, müssen wir PDO :: FETCH_COLUMN und PDO :: FETCH_GROUP bit- oder.
fetch_argument
Fetch_style Parameter auf dem Wert dieses Parameters basiert eine andere Bedeutung hat:
PDO::FETCH_COLUMN
: Rückkehr zu den Null-indizierten Spalten.PDO::FETCH_CLASS
: gibt eine Instanz der angegebenen Klasse, Mapping - Spalte für jede Zeile der Klasse entsprechenden Attributnamen.PDO::FETCH_FUNC
: die Spalte jeder Zeile als Argument an die angegebene Funktion, und gibt das Ergebnis nach Funktion aufrufen.
ctor_args
Wenn fetch_style Parameter PDO :: FETCH_CLASS, da die Definition der Klasse Konstruktorparameter.
Rückgabewert
PDOStatement :: fetchAll () gibt eine Ergebnismenge, die ein Array von allen übrigen Linien enthält. Jede Zeile dieser Anordnung ist ein Array oder ein Spaltenwert oder ein Objekt-Attribut auf jeden Spaltennamen entspricht.
Verwenden Sie diese Methode eine große Ergebnismenge zu erhalten, wird das System Belastung verursachen und eine Menge von Netzwerk-Ressourcen in Anspruch nehmen. Rufen Sie alle Daten und deren Verwendung PHP zu arbeiten, wäre es besser, die Verwendung von Datenbankdienste zu prüfen, mit der Ergebnismenge zu bewältigen. Zum Beispiel vor und Abrufen von Daten durch den PHP-Prozess, um die Ergebnisse mit WHERE und ORDER BY-Klauseln in SQL definieren.
Beispiele
Erhalten Sie alle verbleibenden Zeilen in der Ergebnismenge
<?php $sth = $dbh->prepare("SELECT name, colour FROM fruit"); $sth->execute(); /* 获取结果集中所有剩余的行 */ print("Fetch all of the remaining rows in the result set:\n"); $result = $sth->fetchAll(); print_r($result); ?>
Die Ausgabe des obigen Beispiels ist:
Fetch all of the remaining rows in the result set: Array ( [0] => Array ( [NAME] => pear [0] => pear [COLOUR] => green [1] => green ) [1] => Array ( [NAME] => watermelon [0] => watermelon [COLOUR] => pink [1] => pink ) )
ein einzelnes Ergebnis alle Werte eingestellt wird
Das folgende Beispiel zeigt, wie eine separate Rück alle Werte eines Ergebnis zu konzentrieren, auch wenn die SQL-Anweisung selbst mehrere Spalten pro Zeile zurückgeben kann.
<?php $sth = $dbh->prepare("SELECT name, colour FROM fruit"); $sth->execute(); /* 获取第一列所有值 */ $result = $sth->fetchAll(PDO::FETCH_COLUMN, 0); var_dump($result); ?>
Die Ausgabe des obigen Beispiels ist:
Array(3) ( [0] => string(5) => apple [1] => string(4) => pear [2] => string(10) => watermelon )
Gemäß einer gesonderten Gruppierung alle Werte
Das folgende Beispiel zeigt, wie ein assoziatives Array zentralisiert angegebenen Spalte Wert auf die Ergebnisse des Pakets auf Basis zurückzukehren. Das Array enthält drei Tasten: Apfel und Birne zurückgegebene Array enthält zwei verschiedene Farben, während Wassermelone zurückgegebene Array nur eine Farbe enthält.
<?php $insert = $dbh->prepare("INSERT INTO fruit(name, colour) VALUES (?, ?)"); $insert->execute(array('apple', 'green')); $insert->execute(array('pear', 'yellow')); $sth = $dbh->prepare("SELECT name, colour FROM fruit"); $sth->execute(); /* 根据第一列分组 */ var_dump($sth->fetchAll(PDO::FETCH_COLUMN|PDO::FETCH_GROUP)); ?>
Die Ausgabe des obigen Beispiels ist:
array(3) { ["apple"]=> array(2) { [0]=> string(5) "green" [1]=> string(3) "red" } ["pear"]=> array(2) { [0]=> string(5) "green" [1]=> string(6) "yellow" } ["watermelon"]=> array(1) { [0]=> string(5) "green" } }
Jede Zeile in der Folge eine Klasse instanziiert
Liezi zeigt unter PDO :: FETCH_CLASS Stil Verhalten Ruft.
<?php class fruit { public $name; public $colour; } $sth = $dbh->prepare("SELECT name, colour FROM fruit"); $sth->execute(); $result = $sth->fetchAll(PDO::FETCH_CLASS, "fruit"); var_dump($result); ?>
Die Ausgabe des obigen Beispiels ist:
array(3) { [0]=> object(fruit)#1 (2) { ["name"]=> string(5) "apple" ["colour"]=> string(5) "green" } [1]=> object(fruit)#2 (2) { ["name"]=> string(4) "pear" ["colour"]=> string(6) "yellow" } [2]=> object(fruit)#3 (2) { ["name"]=> string(10) "watermelon" ["colour"]=> string(4) "pink" } }
Jede Zeile ruft eine Funktion
Liezi zeigt unter PDO :: FETCH_FUNC Stil Verhalten Ruft.
<?php function fruit($name, $colour) { return "{$name}: {$colour}"; } $sth = $dbh->prepare("SELECT name, colour FROM fruit"); $sth->execute(); $result = $sth->fetchAll(PDO::FETCH_FUNC, "fruit"); var_dump($result); ?>
Die Ausgabe des obigen Beispiels ist:
array(3) { [0]=> string(12) "apple: green" [1]=> string(12) "pear: yellow" [2]=> string(16) "watermelon: pink" }