2014-07-23 24 views
7

ben bir CSV dosyası çıktısı bir komut dosyası var. Ancak, veritabanında bir satır şu anda olsa bile, ben alıyorum çıktı iki defa tablodaki her satırdan Her sütunu yankılanan olduğunu.PDO hazırlanan deyimi çift sonuçları döndürme) (getirme

Örneğin: 1,1, John, John, Smith, Smith, 2014,2014 , ben PDO ve hazırlanan ifadelere gitmeden önce bu iyi çalıştı 2014

1, John Smith olmalı Bu yüzden belki de fetch() 'in nasıl düzgün çalıştığını anlayamıyorum. Aşağıda kodum. Neyi yanlış yaptığımı biliyor musun?

// get rows 
$query_get_rows = "SELECT * FROM Contacts ORDER BY date_added DESC"; 
$result_get_rows = $conn->prepare($query_get_rows); 
$result_get_rows->execute();   
$num_get_rows = $result_get_rows->rowCount(); 

while ($rows_get_rows = $result_get_rows->fetch()) 
{ 
    $csv .= '"'.join('","', str_replace('"', '""', $rows_get_rows))."\"\n"; 
} 
echo $csv; 
exit; 

cevap

16

Sen yalnızca bir ilişkisel dizi veya numaralı bir dizi istediğiniz, PDO demeliyim: Bir dizi dizine almak için

while ($rows_get_rows = $result_get_rows->fetch(PDO::FETCH_ASSOC)) 

ilişkilendirilebilir bir dizi veya

while ($rows_get_rows = $result_get_rows->fetch(PDO::FETCH_NUM)) 

olsun sütun numarası

PDOStatement::fetch

012 dan Bir sonraki satır arayana iade edilecektir nasıl

alım_tarzı

denetler. Bu değer, PDO :: FETCH_ * sabitlerinden biri olmalı ve PDO :: ATTR_DEFAULT_FETCH_MODE değerine (varsayılan olarak PDO :: FETCH_BOTH) ayarlanmalıdır.

PDO :: FETCH_ASSOC: sütun adıyla endeksli bir dizi döndürdüğünü sonucu döndü set

PDO :: FETCH_BOTH (varsayılan): döndüren sütun ismi ve hem 0-endeksli tarafından dizine bir dizidir senin sonucu döndürülen sütun sayısı

+0

Teşekkür açıklama ayarlayın. Tüm bu zamana kadar sadece fetch_assoc tarafından çalıştı. var_dump, tam olarak ne gönderdiğinizi gösterir! – Hugo

İlgili konular