首頁  >  文章  >  資料庫  >  為什麼我的 PDO 準備語句 Fetch() 會回傳雙結果?

為什麼我的 PDO 準備語句 Fetch() 會回傳雙結果?

Barbara Streisand
Barbara Streisand原創
2024-11-03 02:43:30573瀏覽

Why Does My PDO Prepared Statement Fetch() Return Double Results?

PDO 準備語句Fetch() 傳回雙結果

使用PDO 準備語句時,從fetch() 方法獲得的結果有時可能會似乎是重複的。當所需資料每行檢索兩次時,會發生這種情況,導致輸出中的列數是預期列數的兩倍。

使用預設 PDO::FETCH_BOTH 模式取得資料(此模式擷取結果)時會出現此問題以列名和列號進行索引。為了防止這種重複,請指定備用獲取樣式,例如:

  • PDO::FETCH_ASSOC: 傳回按列名稱索引的數組,避免列號導致的重複index.
  • PDO::FETCH_NUM: 傳回以列號索引的陣列,消除了對列名索引的需求。

透過使用其中任何一個 fetch模式,您可以擷取每行的正確列數,確保輸出如預期顯示。

以下是如何使用 PDO::FETCH_ASSOC 的範例:

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

此程式碼將以關聯數組的形式檢索數據,消除重複的列。

以上是為什麼我的 PDO 準備語句 Fetch() 會回傳雙結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn