2016-04-04 21 views
1

Tabloda toplam 4 girdiye sahip olduğunda neden dönen dizide yalnızca 1 giriş aldığımı anlayamıyorum.PDO Bildirimi, tam diziye dönme

Benim PDO kodudur:

$stmtkat = $this->db->prepare("SELECT * FROM kategorie"); 
$stmtkat->execute(); 
$katarray=$stmtkat->fetch(PDO::FETCH_ASSOC); 
var_dump($katarray); 

dönüş dizisi i olsun:

array(2) { ["id"]=> string(1) "1" ["kategorie"]=> string(12) "Coaching" } 

i diziye sadece ilk satırı almak neden tablo 4 satır vardır? Neyi yanlış yapıyorum? Açıkçası ben PDO için yeni.

Saatiniz için Ty.

Yalnızca sorgu tarafından üretilen sonuç satırı biri alıyorsanız
+0

: Dizi ([kimlik] => 1: [kategorie] => rehberliği) – girax

cevap

5

sen teker teker sonuç satırlarını almak için ->fetch() kullanırsanız, bu

$stmtkat = $this->db->prepare("SELECT * FROM kategorie"); 
$stmtkat->execute(); 
while ($katarray=$stmtkat->fetch(PDO::FETCH_ASSOC)) { 
    var_dump($katarray); 
} 

Veya gibi bir süre döngü içinde bunu Sen karşılığında yalnızca bir satır olsun

$stmtkat = $this->db->prepare("SELECT * FROM kategorie"); 
$stmtkat->execute(); 
$katarray=$stmtkat->fetchAll(PDO::FETCH_ASSOC)) { 

var_dump($katarray); 
+0

Ben sadece, '$ katarray' değişkenini denediğini fark ettiğimde ortaya çıkan +1 :) – JimL

+0

@JimL Yup'dan bahsedebilirsin. – RiggsFolly

+0

için teşekkürler Teşekkürler, bunu başardı :) – girax

2

nesne PDO stmt tek çağrısından yerel diziye tüm satırları döndürmek için fetchAll() kullandığından:

PDOStatement :: fetch - Sonuç dan sonraki satır yerine sonucun tam array() almak ya while() döngü içinde fetch() kullanmak Kullanım fetchAll()

set getirir.

Örnek fetch() ve while() ile:

while ($stmtkat->fetch(PDO::FETCH_ASSOC)) { 
    var_dump($katarray); 
} 

Örnek fetchAll() ile:

bana veri çıkışı verir
$result = $stmtkat->fetchAll(PDO::FETCH_ASSOC) 
var_dup($result); 
+0

Teşekkür ederim, o kadardı. – girax