[英]PDO prepared statement fetch() returning double results
我有一個輸出到 CSV 文件的腳本。 但是,即使數據庫中當前只有一行,我得到的 output 也會將表中每一行的每一列回顯兩次。
例如:1,1,John,John,Smith,Smith,2014,2014 應該是 1,John,Smith,2014
在我使用 PDO 和准備好的語句之前,這工作得很好,所以我想我可能不理解 fetch() 是如何正確工作的。 下面是我的代碼。 知道我可能做錯了什么嗎?
// 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;
您應該對 PDO 說,您只需要一個關聯數組或編號數組:
while ($rows_get_rows = $result_get_rows->fetch(PDO::FETCH_ASSOC))
得到一個關聯數組或
while ($rows_get_rows = $result_get_rows->fetch(PDO::FETCH_NUM))
獲取由列號索引的數組
fetch_style
控制如何將下一行返回給調用者。 此值必須是 PDO::FETCH_* 常量之一,默認為 PDO::ATTR_DEFAULT_FETCH_MODE 的值(默認為 PDO::FETCH_BOTH)。
PDO::FETCH_ASSOC: 返回一個按列名索引的數組,如結果集中返回的那樣
PDO::FETCH_BOTH (默認) :返回一個由列名和 0 索引列號索引的數組,如結果集中返回的那樣
也許您的類與其方法之一具有相同的名稱。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.