PDO プリペアド ステートメント Fetch() が 2 つの結果を返す
PDO プリペアド ステートメントを使用すると、 fetch() メソッドから取得した結果が重複しているように見えます。この問題は、目的のデータが行ごとに 2 回取得され、出力の列数が予想の 2 倍になる場合に発生します。
この問題は、結果を取得するデフォルトの PDO::FETCH_BOTH モードを使用してデータをフェッチするときに発生します。列名と列番号の両方でインデックスが付けられます。この重複を防ぐには、次のような代替フェッチ スタイルを指定します。
これらのフェッチ モードのいずれかを使用すると、各行の正しい列数を取得でき、出力が意図したとおりに表示されるようになります。 .
これは 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 中国語 Web サイトの他の関連記事を参照してください。