SELECT ile kayıt okuma
PDO ile SELECT sorgusu çalıştırıp kayıtları okumayı öğrenirsin.
SELECT ile kayıt okuma
Kayıtları okumak için SELECT sorgusunu prepared statement ile çalıştırırsın. prepare() ve execute() INSERT'teki gibi çalışır.
Sonuçları almak için fetchAll(PDO::FETCH_ASSOC) her satırı ilişkisel dizi olarak döndürür; sütun adları dizi anahtarları olur.
Satır satır dönmek istersen fetch() yöntemini kullanırsın; her çağrıda bir sonraki satırı verir, kayıt kalmayınca false döner.
WHERE ile süzme
WHERE yan tümcesi belirli satırları seçer. Değerleri doğrudan SQL metnine yazmak yerine ? yer tutucu ile prepared statement kullanırsın.
Örneğin SELECT name FROM users WHERE role = ? sorgusu yalnızca istenilen role sahip satırları döndürür; değer execute() ile güvenle geçirilir.
Sıralama garanti altında olmadığından, deterministik çıktı için ORDER BY eklemek iyi bir alışkanlıktır.
Uygulama 'admin' rolündeki kullanıcıları listele
Aşağıdaki iskelette prepare, execute ve fetchAll(PDO::FETCH_ASSOC) kullanarak 'admin' rolündeki kullanıcıların adlarını ID sırasına göre yazdır.
Örnek çözümü göster
<?php
$pdo = new PDO('sqlite::memory:');
$pdo->exec("CREATE TABLE users (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, role TEXT)");
$pdo->exec("INSERT INTO users (name, role) VALUES ('Ayşe', 'admin')");
$pdo->exec("INSERT INTO users (name, role) VALUES ('Ali', 'editor')");
$pdo->exec("INSERT INTO users (name, role) VALUES ('Deniz', 'admin')");
$stmt = $pdo->prepare("SELECT name FROM users WHERE role = ? ORDER BY id");
$stmt->execute(['admin']);
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($rows as $row) {
echo $row['name'] . "\n";
}
Kendini test et
-
Hangi fetch modu ilişkisel dizi döndürür?
- PDO::FETCH_ASSOC
- PDO::FETCH_NUM
- PDO::FETCH_BOTH
- PDO::FETCH_OBJ
Cevabı göster
PDO::FETCH_ASSOC — PDO::FETCH_ASSOC her satırı sütun adları anahtarlı dizi olarak döndürür.
-
Tüm satırları çek
$rows = $stmt->____(PDO::FETCH_ASSOC);Cevabı göster
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC); -
Yöntemleri sonuçlarına eşle
- fetch()
- Tek satır döndürür
- fetchAll()
- Tüm satırları döndürür
- fetchColumn()
- Tek sütun döndürür
- prepare()
- Sorguyu hazırlar