PDO'da Tüm Sonuç Satırlarını Almak
Sorgu sonucundaki tüm satırları içeren bir dizi doğrudan alınabilir.
Bu, fetchAll yöntemi kullanılarak yapılır.
Bu yöntemin çeşitli çalışma modlarını inceleyelim.
Tüm örnekler test tablosu için olacaktır.
Basit Dizi Elde Etme
Basit bir veri dizisi elde etmek için fetchAll yöntemini uygulayalım.
Bunun için yöntemin parametrelerini boş bırakıyoruz:
<?php
$res = $pdo->query('SELECT * FROM users');
$row = $res->fetchAll();
var_dump($row);
?>
Kodun çalıştırılmasının sonucu:
[
[
'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,
],
]
Tek Sütun Elde Etme
Tablodan sadece bir sütun alalım.
Bunun için fetchAll yöntemine
FETCH_COLUMN parametresini iletiyoruz:
<?php
$res = $pdo->query('SELECT name FROM users');
$row = $res->fetchAll(PDO::FETCH_COLUMN);
var_dump($row);
?>
Kodun çalıştırılmasının sonucu:
[
'name1',
'name2',
'name3',
'name4',
'name5',
]
Anahtar-Değer Çifti Elde Etme
Anahtarın id, değerin ise kullanıcı adı olacağı
bir anahtar-değer çifti şeklinde veri alalım.
Bunun için fetchAll yönteminin parametresine
FETCH_KEY_PAIR modunu iletiyoruz:
<?php
$res = $pdo->query('SELECT id, name FROM users');
$row = $res->fetchAll(PDO::FETCH_KEY_PAIR);
var_dump($row);
?>
Kodun çalıştırılmasının sonucu:
[
1 => 'name1',
2 => 'name2',
3 => 'name3',
4 => 'name4',
5 => 'name5',
]
Benzersiz Alan ile Kayıtları Elde Etme
Benzersiz bir alanın (genellikle id)
her bir alt dizi için anahtar olmasını sağlayabilirsiniz:
<?php
$res = $pdo->query('SELECT * FROM users');
$row = $res->fetchAll(PDO::FETCH_UNIQUE);
var_dump($row);
?>
Kodun çalıştırılmasının sonucu:
[
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,
],
]
Pratik Görevler
Bu derste açıklanan yöntemi kullanarak
users tablosundaki tüm kullanıcıları
yazdırın.
users tablosundan tek bir veri satırını
yazdırın.
Kullanıcıların ad ve yaşlarını bir anahtar-değer çifti şeklinde yazdırın.