2013-04-29 18 views
11

$ pdo ifadelerini kullanmakta yeniyim, bu yüzden henüz php.net'te okumadığım basit bir şey olabilir. Veritabanını sorgularken yinelenen sonuçlar alıyorum.PDO, yanlış, ancak yinelenen verileri döndürüyor. Anahtar veritabanında değil.

Sonuç:

function getData(){ 
    global $pdo; 
    $query = $pdo->prepare('SELECT * FROM usermeta WHERE meta_key = "fbmeta" LIMIT 0,30'); 
    $query->execute(); 

    return $query->fetchAll(); 
} 

print_r(getData()); 

sorundur adlı tuşları (umeta_id, user_id, meta_key, meta_value) mevcut DO olduğunu, sayısal tuşlar:

[0] => Array 
    (
     [umeta_id] => 31 
     [0] => 31 
     [user_id] => 2 
     [1] => 2 
     [meta_key] => fbmeta 
     [2] => fbmeta 
     [meta_value] => someMetaValueStuff; 
     [3] => someMetaValueStuff; 
    ) 
sorgu oldukça basittir

yapma. Sorgu nasıl döndürür? Ve onların iade edilmelerini nasıl engelleyebilirim?

+0

Soran önce, evet elle kontrol ve küçük bir koleksiyona veritabanını sınırlı, bu yüzden çiftleri gerçekten var olmayan var. – Nukeface

cevap

21

almak için Docs

kullanın bu Bkz, sadece kullandığınız geçerli FETCH_MODE bu. İlişkilendirici anahtar olarak almak için sadece böyle belirtmeniz gerekir; varsayılan olarak her ikisini de alır. şöyle

Kullanım:

$query->fetchAll(PDO::FETCH_NUM); // to fetch with numeric indexes 
$query->fetchAll(PDO::FETCH_ASSOC); // to fetch with associative indexes 

fetchAll docs
fetch docs

+2

Bunu düzeltmesi için soğuk. Çok kötü Ben cevap olarak 2 cevap seçemiyorum, hem siz hem de Yogesh aynı anda vardı. – Nukeface

+0

@Nukeface Bence bu benim ilk ... :). Ama kimsenin cevabını kabul edebilirsin, senin seçimin ... :) –

+1

Zamanlayıcı geri saymaya başladığında yapacaksın, sizler hızlıydınız;) Bunu seçecek olsa da, getirme dokümanları fark etmem gereken getirme işlevine gittiler. ilk bakışımdaki farklılıklar, ve yapmadı. – Nukeface

9

Bu, yinelenen veri değil fetchAll, sayısal dizinin yanı sıra ilişkisel dizi verileri döndürür.

sadece ilişkili dizi O çiftleri değil

return $query->fetchAll(PDO::FETCH_ASSOC); 
İlgili konular