Όλες οι σειρές από το αποτέλεσμα στο PDO της PHP
Μπορούμε να λάβουμε αμέσως έναν πίνακα με όλες τις
σειρές από το αποτέλεσμα του ερωτήματος.
Αυτό γίνεται με τη μέθοδο fetchAll.
Ας εξετάσουμε τις διάφορες λειτουργίες
αυτής της μεθόδου.
Όλα τα παραδείγματα θα είναι για τον πίνακα δοκιμών.
Λήψη απλού πίνακα
Ας εφαρμόσουμε τη μέθοδο fetchAll
για να λάβουμε έναν απλό πίνακα δεδομένων.
Για να το κάνουμε αυτό, αφήνουμε τις παραμέτρους της μεθόδου
κενές:
<?php
$res = $pdo->query('SELECT * FROM users');
$row = $res->fetchAll();
var_dump($row);
?>
Αποτέλεσμα εκτέλεσης του κώδικα:
[
[
'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,
],
]
Λήψη μιας στήλης
Ας λάβουμε μόνο μία στήλη
από τον πίνακα. Για να το κάνουμε αυτό, περνάμε στην
μέθοδο fetchAll την παράμετρο
FETCH_COLUMN:
<?php
$res = $pdo->query('SELECT name FROM users');
$row = $res->fetchAll(PDO::FETCH_COLUMN);
var_dump($row);
?>
Αποτέλεσμα εκτέλεσης του κώδικα:
[
'name1',
'name2',
'name3',
'name4',
'name5',
]
Λήψη ζεύγους κλειδί-τιμή
Ας λάβουμε τα δεδομένα σε μορφή
ζεύγους κλειδί-τιμή, όπου το κλειδί θα είναι το id,
και η τιμή το όνομα του χρήστη. Για να το κάνουμε αυτό, στην παράμετρο
της μεθόδου fetchAll περνάμε τη λειτουργία
FETCH_KEY_PAIR:
<?php
$res = $pdo->query('SELECT id, name FROM users');
$row = $res->fetchAll(PDO::FETCH_KEY_PAIR);
var_dump($row);
?>
Αποτέλεσμα εκτέλεσης του κώδικα:
[
1 => 'name1',
2 => 'name2',
3 => 'name3',
4 => 'name4',
5 => 'name5',
]
Λήψη εγγραφών με μοναδικό πεδίο
Μπορούμε να κάνουμε έτσι ώστε το μοναδικό πεδίο (γενικά
αυτό είναι το id), να γίνει το κλειδί για κάθε
υποπίνακα:
<?php
$res = $pdo->query('SELECT * FROM users');
$row = $res->fetchAll(PDO::FETCH_UNIQUE);
var_dump($row);
?>
Αποτέλεσμα εκτέλεσης του κώδικα:
[
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,
],
]
Πρακτικές ασκήσεις
Εμφανίστε όλους τους χρήστες
από τον πίνακα users,
χρησιμοποιώντας τη μέθοδο που περιγράφηκε στο μάθημα.
Εμφανίστε μία σειρά δεδομένων
από τον πίνακα users.
Εμφανίστε το όνομα και την ηλικία των χρηστών σε μορφή ζεύγους κλειδί-τιμή.