PDOStatement::fetchAll — Devuelve una matriz que contiene todas las filas del conjunto de resultados (PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)
matriz PDOStatement::fetchAll ([ int $fetch_style [, mixto $fetch_argument [, matriz $ctor_args = matriz() ]]] )
buscar_estilo
Controla cómo se devuelve la siguiente línea a la persona que llama. Este valor debe ser uno de la serie de constantes PDO::FETCH_* y el valor predeterminado es el valor de PDO::ATTR_DEFAULT_FETCH_MODE (el valor predeterminado es PDO::FETCH_BOTH).
Para devolver una matriz que contenga todos los valores de una sola columna en el conjunto de resultados, especifique PDO::FETCH_COLUMN. Obtenga la columna deseada especificando el parámetro de índice de columna.
Para obtener el valor único de una sola columna en el conjunto de resultados, necesita OR bit a bit::FETCH_COLUMN y PDO::FETCH_UNIQUE.
Para devolver una matriz asociativa con valores agrupados según la columna especificada, debe realizar OR bit a bit::FETCH_COLUMN y PDO::FETCH_GROUP.
fetch_argumentEste parámetro tiene diferentes significados según el valor del parámetro fetch_style:
PDO::FETCH_COLUMN
: Devuelve la columna especificada indexada a partir de 0.
PDO::FETCH_CLASS
: Devuelve una instancia de la clase especificada, asignando las columnas de cada fila al nombre del atributo correspondiente en la clase.
PDO::FETCH_FUNC
: pasa las columnas de cada fila como parámetros a la función especificada y devuelve el resultado después de llamar a la función.
ctor_args Cuando el parámetro fetch_style es PDO::FETCH_CLASS, los parámetros del constructor de la clase personalizada.
PDOStatement::fetchAll() devuelve una matriz que contiene todas las filas restantes en el conjunto de resultados. Cada fila de esta matriz es una matriz de valores de columna o un objeto con propiedades correspondientes a cada nombre de columna.
El uso de este método para obtener grandes conjuntos de resultados supondrá una gran carga para el sistema y puede consumir importantes recursos de red. En lugar de recuperar todos los datos y luego operarlos con PHP, considere usar un servicio de base de datos para procesar el conjunto de resultados. Por ejemplo, utilice las cláusulas WHERE y ORDER BY en SQL para calificar los resultados antes de recuperar los datos y procesarlos a través de PHP.
<?php$sth = $dbh->prepare("SELECCIONAR nombre, color DE la fruta");$sth->execute();/* Obtener todas las filas restantes en el conjunto de resultados*/print("Obtener todas las filas restantes en el conjunto de resultados:n");$resultado = $sth->fetchAll();print_r($resultado);?>
El resultado del ejemplo anterior es:
Obtenga todas las filas restantes en el conjunto de resultados:Array( [0] => Array ( [NOMBRE] => pera [0] => pera [COLOR] => verde [1] => verde ) [1] => Array ([NOMBRE] => sandía [0] => sandía [COLOR] => rosa [1] => rosa))
El siguiente ejemplo demuestra cómo devolver todos los valores de una sola columna de un conjunto de resultados, aunque la declaración SQL en sí puede devolver varias columnas por fila.
<?php$sth = $dbh->prepare("SELECCIONAR nombre, color DE fruta");$sth->execute();/* Obtener todos los valores en la primera columna*/$resultado = $sth-> buscarTodo(PDO ::FETCH_COLUMN, 0);var_dump($resultado);?>
El resultado del ejemplo anterior es:
Array(3)( [0] => cadena(5) => manzana [1] => cadena(4) => pera [2] => cadena(10) => sandía)
El siguiente ejemplo demuestra cómo devolver una matriz asociativa agrupada por los valores de una columna especificada en el conjunto de resultados. La matriz contiene tres claves: las matrices de manzana y pera devueltas contienen dos colores diferentes, mientras que la matriz de sandía devuelta contiene solo un color.
<?php$insert = $dbh->prepare("INSERT INTO fruta(nombre, color) VALORES (?, ?)");$insert->execute(array('manzana', 'verde'));$insert ->execute(array('pera', 'amarillo'));$sth = $dbh->prepare("SELECCIONAR nombre, color DESDE fruit");$sth->execute();/* Grupo basado en la primera columna*/var_dump($sth->fetchAll(PDO::FETCH_COLUMN|PDO::FETCH_GROUP));?>
El resultado del ejemplo anterior es:
matriz(3) { ["manzana"]=> matriz(2) { [0]=> cadena(5) "verde" [1]=> cadena(3) "rojo" } ["pera"]=> matriz (2) { [0]=> cadena(5) "verde" [1]=> cadena(6) "amarillo" } ["sandía"]=> matriz(1) { [0]=> cadena(5) "verde" }}
El siguiente ejemplo demuestra el comportamiento del estilo de adquisición PDO::FETCH_CLASS.
<?phpclass fruta { public $nombre; public $color;}$sth = $dbh->prepare("SELECCIONE nombre, color DE fruta");$sth->execute();$resultado = $sth->fetchAll( PDO::FETCH_CLASS, "fruta");var_dump($resultado);?>
El resultado del ejemplo anterior es:
matriz(3) { [0]=> objeto(fruta)#1 (2) { ["nombre"]=> cadena(5) "manzana" ["color"]=> cadena(5) "verde" } [ 1]=> objeto(fruta)#2 (2) { ["nombre"]=> cadena(4) "pera" ["color"]=> cadena(6) "amarillo" } [2]=> objeto( fruta)#3 (2) { ["nombre"]=> cadena(10) "sandía" ["color"]=> cadena(4) "rosa" }}
El siguiente ejemplo demuestra el comportamiento del estilo de obtención PDO::FETCH_FUNC.
<?phpfunction fruta($nombre, $color) { return "{$nombre}: {$color}";}$sth = $dbh->prepare("SELECCIONAR nombre, color DE fruta");$sth->ejecutar ();$resultado = $algo->fetchAll(PDO::FETCH_FUNC, "fruta");var_dump($resultado);?>
El resultado del ejemplo anterior es:
array(3) { [0]=> string(12) "manzana: verde" [1]=> string(12) "pera: amarilla" [2]=> string(16) "sandía: rosa"}