PDOStatement :: fetchAll
PDOStatement :: fetchAll - devuelve una matriz de todas las filas del conjunto de resultados (PHP 5> = 5.1.0, PECL pdo> = 0.1.0)
explicación
gramática
array PDOStatement::fetchAll ([ int $fetch_style [, mixed $fetch_argument [, array $ctor_args = array() ]]] )
parámetros
fetch_style
¿Cómo controlar la línea siguiente se devuelve a la persona que llama. Este valor debe ser PDO :: FETCH_ * constantes en una serie, el valor por defecto para el PDO :: ATTR_DEFAULT_FETCH_MODE (por defecto PDO :: FETCH_BOTH).
Para devolver un conjunto de resultados que contiene una matriz de todos los valores en una sola columna, es necesario especificar PDO :: FETCH_COLUMN. Recibe las columnas deseadas especificando el parámetro índice-columna.
¿Quieres conseguir el conjunto de resultados de valores únicos en una sola columna, necesita PDO :: FETCH_COLUMN y PDO :: bit a bit o FETCH_UNIQUE.
Para devolver una columna basada en el valor especificado de la matriz asociativa agrupados, necesitamos PDO :: FETCH_COLUMN y PDO :: bit a bit o FETCH_GROUP.
fetch_argument
parámetro Fetch_style basado en el valor de este parámetro tiene un significado diferente:
PDO::FETCH_COLUMN
: Vuelve a las columnas indexadas cero.PDO::FETCH_CLASS
: devuelve una instancia de la clase especificada, la columna de asignación para cada fila correspondiente a la clase de atributo de nombre.PDO::FETCH_FUNC
: la columna de cada fila como un argumento para la función especificada, y devuelve el resultado después de llamar a la función.
ctor_args
Cuando los parámetros fetch_style PDO :: FETCH_CLASS, ya que la definición de los parámetros del constructor de clase.
Valor de retorno
PDOStatement :: fetchAll () devuelve un conjunto de resultados que contiene una matriz de todas las líneas restantes. Cada fila de esta matriz es una matriz o un valor de columna, o un atributo de objeto correspondiente a cada nombre de columna.
Utilice este método para obtener un conjunto de resultados hará que la carga del sistema y puede tardar hasta una gran cantidad de recursos de la red. Recuperar todos los datos y su uso PHP para funcionar, sería mejor considerar el uso de los servicios de base de datos para hacer frente al conjunto de resultados. Por ejemplo, antes y recuperar datos a través del proceso de PHP para definir los resultados con WHERE y cláusulas ORDER BY en SQL.
Ejemplos
Obtener todas las filas restantes en el conjunto de resultados
<?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); ?>
La salida del ejemplo anterior es:
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 ) )
Al ser un único conjunto de resultados todos los valores
El siguiente ejemplo demuestra cómo concentrar una declaración por separado todos los valores de un resultado, a pesar de que la propia sentencia SQL puede devolver múltiples columnas por fila.
<?php $sth = $dbh->prepare("SELECT name, colour FROM fruit"); $sth->execute(); /* 获取第一列所有值 */ $result = $sth->fetchAll(PDO::FETCH_COLUMN, 0); var_dump($result); ?>
La salida del ejemplo anterior es:
Array(3) ( [0] => string(5) => apple [1] => string(4) => pear [2] => string(10) => watermelon )
De acuerdo con una agrupación separada todos los valores
El siguiente ejemplo muestra cómo devolver un valor de la columna especificada matriz asociativa centralizado basado en los resultados del paquete. La matriz contiene tres teclas: manzana y pera matriz devuelta contiene dos colores diferentes, mientras que la sandía vuelto matriz contiene un solo color.
<?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)); ?>
La salida del ejemplo anterior es:
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" } }
Cada fila en el resultado de una instancia de una clase
Liezi siguiente muestra PDO :: FETCH_CLASS Obtiene comportamiento estilo.
<?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); ?>
La salida del ejemplo anterior es:
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" } }
Cada línea llama a una función
Liezi siguiente muestra PDO :: FETCH_FUNC Obtiene comportamiento estilo.
<?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); ?>
La salida del ejemplo anterior es:
array(3) { [0]=> string(12) "apple: green" [1]=> string(12) "pear: yellow" [2]=> string(16) "watermelon: pink" }