Tutte le righe del risultato in PDO in PHP
È possibile ottenere immediatamente un array di tutte
le righe dal risultato della query.
Questo viene fatto utilizzando il metodo fetchAll.
Esaminiamo le diverse modalità di funzionamento
di questo metodo.
Tutti gli esempi faranno riferimento alla tabella di test.
Ottenere un array semplice
Applichiamo il metodo fetchAll
per ottenere un array semplice di dati.
Per fare questo, lasciamo vuoti i parametri del metodo:
<?php
$res = $pdo->query('SELECT * FROM users');
$row = $res->fetchAll();
var_dump($row);
?>
Risultato dell'esecuzione del codice:
[
[
'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,
],
]
Ottenere una singola colonna
Otteniamo solo una colonna
dalla tabella. Per fare questo, passiamo al
metodo fetchAll il parametro
FETCH_COLUMN:
<?php
$res = $pdo->query('SELECT name FROM users');
$row = $res->fetchAll(PDO::FETCH_COLUMN);
var_dump($row);
?>
Risultato dell'esecuzione del codice:
[
'name1',
'name2',
'name3',
'name4',
'name5',
]
Ottenere una coppia chiave-valore
Otteniamo i dati sotto forma di
coppia chiave-valore, dove la chiave sarà l'id,
e il valore sarà il nome dell'utente. Per fare questo, passiamo come parametro
al metodo fetchAll la modalità
FETCH_KEY_PAIR:
<?php
$res = $pdo->query('SELECT id, name FROM users');
$row = $res->fetchAll(PDO::FETCH_KEY_PAIR);
var_dump($row);
?>
Risultato dell'esecuzione del codice:
[
1 => 'name1',
2 => 'name2',
3 => 'name3',
4 => 'name4',
5 => 'name5',
]
Ottenere record con un campo univoco
È possibile fare in modo che un campo univoco (generalmente
id) diventi la chiave per ogni
sotto-array:
<?php
$res = $pdo->query('SELECT * FROM users');
$row = $res->fetchAll(PDO::FETCH_UNIQUE);
var_dump($row);
?>
Risultato dell'esecuzione del codice:
[
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,
],
]
Compiti pratici
Visualizza tutti gli utenti
dalla tabella users,
utilizzando il metodo descritto nella lezione.
Visualizza una singola riga di dati
dalla tabella users.
Visualizza il nome e l'età degli utenti sotto forma di coppia chiave-valore.