Todos los registros del resultado en PDO en PHP
Se puede obtener directamente un array con todos
los registros del resultado de la consulta.
Esto se hace usando el método fetchAll.
Vamos a revisar los diferentes modos de funcionamiento
de este método.
Todos los ejemplos serán para la tabla de prueba.
Obteniendo un array simple
Apliquemos el método fetchAll
para obtener un array simple de datos.
Para ello, dejaremos los parámetros del método
vacíos:
<?php
$res = $pdo->query('SELECT * FROM users');
$row = $res->fetchAll();
var_dump($row);
?>
Resultado de ejecutar el código:
[
[
'id' => 1,
'name' => 'name1',
'age' => 21,
'salary' => 500,
],
[
'id' => 2,
'name' => 'name2',
'age' => 22,
'salary' => 600,
],
[
'id' => 3,
'name' => 'name3',
'age' => 23,
'salary' => 600,
],
[
'id' => 4,
'name' => 'name4',
'age' => 24,
'salary' => 700,
],
[
'id' => 5,
'name' => 'name5',
'age' => 25,
'salary' => 800,
],
]
Obteniendo una sola columna
Obtengamos solo una columna
de la tabla. Para ello, pasaremos al
método fetchAll el parámetro
FETCH_COLUMN:
<?php
$res = $pdo->query('SELECT name FROM users');
$row = $res->fetchAll(PDO::FETCH_COLUMN);
var_dump($row);
?>
Resultado de ejecutar el código:
[
'name1',
'name2',
'name3',
'name4',
'name5',
]
Obteniendo un par clave-valor
Obtengamos los datos en forma de
par clave-valor, donde la clave será el id,
y el valor el nombre del usuario. Para ello, en el parámetro
del método fetchAll pasaremos el modo
FETCH_KEY_PAIR:
<?php
$res = $pdo->query('SELECT id, name FROM users');
$row = $res->fetchAll(PDO::FETCH_KEY_PAIR);
var_dump($row);
?>
Resultado de ejecutar el código:
[
1 => 'name1',
2 => 'name2',
3 => 'name3',
4 => 'name4',
5 => 'name5',
]
Obteniendo registros con un campo único
Se puede hacer que un campo único (generalmente
es el id) se convierta en la clave para cada
subarray:
<?php
$res = $pdo->query('SELECT * FROM users');
$row = $res->fetchAll(PDO::FETCH_UNIQUE);
var_dump($row);
?>
Resultado de ejecutar el código:
[
1 => [
'id' => 1,
'name' => 'name1',
'age' => 21,
'salary' => 500,
],
2 => [
'id' => 2,
'name' => 'name2',
'age' => 22,
'salary' => 600,
],
3 => [
'id' => 3,
'name' => 'name3',
'age' => 23,
'salary' => 600,
],
4 => [
'id' => 4,
'name' => 'name4',
'age' => 24,
'salary' => 700,
],
5 => [
'id' => 5,
'name' => 'name5',
'age' => 25,
'salary' => 800,
],
]
Tareas prácticas
Muestra todos los usuarios
de la tabla users,
usando el método descrito en la lección.
Muestra un registro de datos
de la tabla users.
Muestra el nombre y la edad de los usuarios en forma de par clave-valor.