ホームページ > データベース > mysql チュートリアル > PDO プリペアドステートメントを使用してフェッチすると二重の結果が得られるのはなぜですか?

PDO プリペアドステートメントを使用してフェッチすると二重の結果が得られるのはなぜですか?

Patricia Arquette
リリース: 2024-11-02 17:49:28
オリジナル
454 人が閲覧しました

Why am I Getting Double Results When Fetching with PDO Prepared Statements?

二重の結果を取得する準備済みステートメントに関する PDO の問題

スクリプトを使用してデータを CSV ファイルにエクスポートすると、次の問題が発生する可能性があります。必要な 1 行ではなく、データの複数のコピーが表示されます。この問題は、PDO プリペアド ステートメントを使用するときに明らかになり、なぜそれが発生するのかを理解するのが混乱する可能性があります。

この問題を解決するには、返される結果に必要な形式を指定することが重要です。デフォルトでは、PDO は FETCH_BOTH モードを利用し、列名と 0 から始まるインデックスの列番号の両方を含む配列を返します。この場合、列名でインデックス付けされた連想配列のみを取得したいと考えています。

この状況を修正するには、目的のフェッチ モードを指定してコードを変更するだけです:

while ($rows_get_rows = $result_get_rows->fetch(PDO::FETCH_ASSOC))
{
  $csv .= '"'.join('","', str_replace('"', '""', $rows_get_rows))."\"\n";
}
ログイン後にコピー

また、数値インデックス付き配列を使用したい場合は、代わりに PDO::FETCH_NUM を使用できます。

オプション選択すると、返される結果の形式が決定され、CSV エクスポートに必要な構造でデータを確実に受け取ることができます。

以上がPDO プリペアドステートメントを使用してフェッチすると二重の結果が得られるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート