• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:csv出力した内容を配列で取得できますか?)

CSV出力の内容を配列で取得する方法について

このQ&Aのポイント
  • データベースのテーブル内容をサーバー上にCSV出力した後、配列で取得する方法について質問です。
  • 現在、PDOを利用してCSV出力した内容を配列で取得しようとしていますが、General Errorが発生しています。
  • データ量が数十万件あるため、配列のループ処理が遅いと感じています。より効率的な方法があれば教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

流れ的にはこんな感じでどうでしょう? (1)テンポラリテーブルに未出力のデータidをはきだす (2)テンポラリに合致するデータをcsvに出力する (3)出力後テンポラリを元にデータテーブルのoutputカラムをアップデートする

suffre
質問者

お礼

遅くなってすみませんでした。 今試してみてうまくいきました! どうもありがとうございました!!

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

>csv出力すると同時に出力した内容を配列で取得 普通にCSVデータをPHPで読めばいいのでは? >データ量が数十万件ある 数十万件のデータをそのまま配列でもってどうするつもりでしょう? データはCSVで担保されているのですから、わざわざプログラム的にもつ 意図がわかりません。メモリ的にも厳しい処理でしょうし なんらかの集計やデータ抽出が必要ならSQL側でやれば済むので・・・

suffre
質問者

お礼

ありがとうございます! csvで出力した行を「出力済み」というフラグでDBのカラムをUPDATEしたいのです。 例えばカラムが"id", "name", "output"となっていた場合、csvで出力した行の"output"を0から1にUPDATEしようと考えています。 なので SELECT id, name FROM tb INTO OUTFILE '/tmp.csv' としたidを配列で持てればそのidをWHEREに指定してUPDATEできると思ったのです。

関連するQ&A