2013-08-21 48 views
0

我使用的是PDO,當我回顯foreach循環時,我的代碼輸出了我的記錄數組。但我不知道如何將其存儲在變量中。如果我將echo替換爲$foo =,則該變量爲空。我的大腦被卡住了,我知道這並不難,但我不能認爲我需要改變。PDO將輸出數組存儲到變量中

我希望所有的行都存儲在變量中,例如 ['2013-08-09','Heptageniidae',3],['2013-08-09','Ephemerellidae',2],

由於

$sql = "SELECT * FROM userrecords"; 
$stmt = $conn->prepare($sql); 
$stmt->execute(); 

// $數據= $ stmt->使用fetchall();

echo json_encode($stmt->fetchAll(PDO::FETCH_ROW); 


    //foreach ($data as $row): 
    // echo "['" . $row['eventdate'] . "','" . $row['scientificname'] . "'," . $row['category_of_taxom'] . "],"; 
    //endforeach 

回答

1

這裏是你在做什麼

echo json_encode($stmt->fetchAll(PDO::FETCH_NUM)); 

的正確方法,這裏是你問的什麼

$foo = ''; 
foreach ($data as $row) 
{ 
    $foo .= "['" . $row['eventdate'] . "','" 
      . $row['scientificname'] . "'," . $row['category_of_taxom'] . "],"; 
} 
echo $foo; 

這是不對的。

切勿手動創建JSON字符串。

+0

我沒有從這得到任何輸出。我把它放在'$ stmt = $ conn-> prepare($ sql)'之後,而不是所有的東西';' – Skot

+0

你應該把它放在執行後 –

+0

我編輯了原始問題,仍然沒有結果輸出?感謝關於使用json的信息 – Skot

-1

看起來你沒有做錯什麼。 你可能想檢查$ stmt-> errorInfo();對於數據庫問題,你可以使用var_dump();或print_r();在php中檢查由fetchAll()命令返回的數組內容。