Alla rader från resultatet i PDO i PHP
Man kan omedelbart få en array med alla
rader från resultatet av en fråga.
Detta görs med metoden fetchAll.
Låt oss undersöka dess olika arbetslägen.
Alla exempel kommer att vara för testtabellen.
Hämta en enkel array
Låt oss använda metoden fetchAll
för att få en enkel array med data.
För att göra detta lämnar vi metodens parametrar
tomma:
<?php
$res = $pdo->query('SELECT * FROM users');
$row = $res->fetchAll();
var_dump($row);
?>
Resultat av kodkörning:
[
[
'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,
],
]
Hämta en kolumn
Låt oss bara hämta en kolumn
från tabellen. För att göra detta skickar vi
parametern FETCH_COLUMN till
metoden fetchAll:
<?php
$res = $pdo->query('SELECT name FROM users');
$row = $res->fetchAll(PDO::FETCH_COLUMN);
var_dump($row);
?>
Resultat av kodkörning:
[
'name1',
'name2',
'name3',
'name4',
'name5',
]
Hämta nyckel-värde-par
Låt oss hämta data i form av
nyckel-värde-par, där nyckeln är id:t,
och värdet är användarens namn. För att göra detta skickar vi läget
FETCH_KEY_PAIR som parameter till
metoden fetchAll:
<?php
$res = $pdo->query('SELECT id, name FROM users');
$row = $res->fetchAll(PDO::FETCH_KEY_PAIR);
var_dump($row);
?>
Resultat av kodkörning:
[
1 => 'name1',
2 => 'name2',
3 => 'name3',
4 => 'name4',
5 => 'name5',
]
Hämta poster med ett unikt fält
Man kan göra så att ett unikt fält (vanligtvis
id) blir nyckeln för varje
subarray:
<?php
$res = $pdo->query('SELECT * FROM users');
$row = $res->fetchAll(PDO::FETCH_UNIQUE);
var_dump($row);
?>
Resultat av kodkörning:
[
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,
],
]
Praktiska uppgifter
Skriv ut alla användare
från tabellen users,
genom att använda metoden som beskrivs i lektionen.
Skriv ut en rad data
från tabellen users.
Skriv ut användarnas namn och ålder i form av nyckel-värde-par.