
データベースのテーブル内容をサーバー上にcsv出力すると同時に出力した内容を配列で取得できないでしょうか?(PDOを利用しています)
$sql= "SELECT id, name FROM tb INTO OUTFILE '/tmp.csv'";
$stmt = $dbh->query($sql);
これでcsvは出力されるのですが、csv出力した内容を配列で取得したく、
$array = $stmt->fetchAll(PDO::FETCH_ASSOC);
をするとGeneral Errorとなります。
先にSELECTで内容を配列で取得してから配列のループでcsvの内容を作成し、出力する方法もありますが、データ量が数十万件あるのでループ処理が遅い気がしています。
良い方法があればお教えください。
よろしくお願い致します。
No.2ベストアンサー
- 回答日時:
流れ的にはこんな感じでどうでしょう?
(1)テンポラリテーブルに未出力のデータidをはきだす
(2)テンポラリに合致するデータをcsvに出力する
(3)出力後テンポラリを元にデータテーブルのoutputカラムをアップデートする
No.1
- 回答日時:
>csv出力すると同時に出力した内容を配列で取得
普通にCSVデータをPHPで読めばいいのでは?
>データ量が数十万件ある
数十万件のデータをそのまま配列でもってどうするつもりでしょう?
データはCSVで担保されているのですから、わざわざプログラム的にもつ
意図がわかりません。メモリ的にも厳しい処理でしょうし
なんらかの集計やデータ抽出が必要ならSQL側でやれば済むので・・・
ありがとうございます!
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が見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PS4コントローラーをPCでゲーム...
-
4Kの外部モニターに出力すると...
-
スマホのバッテリー消費につい...
-
Microsoft365で作ったword文書...
-
PD充電器について
-
MMDでavi出力が出来ない
-
FLEXSOLARパネルからAmazonで買...
-
コンセントの電力は入力と出力...
-
ACアダプタの適合性・互換性に...
-
KEYENCEのシーケンスプログラム...
-
スマホ充電器購入にあたり
-
【PowerPoint VBAの高速化】
-
Excel VBAで値を変えながら、pd...
-
TOSHIBAブースターTHC-77FCSS3...
-
OBS配信すると、マイクが途切れ...
-
VBAのExecメソッドで画面を非表...
-
【ExcelVBA】最終行の取得で困...
-
ActiveReportsで動的に列追加の...
-
Access 抽出結果をExcelへ出力
-
coutで出力した文字を消去する...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PS4コントローラーをPCでゲーム...
-
4Kの外部モニターに出力すると...
-
プログラムについての質問です...
-
Accessのテーブルからcsv出力す...
-
FLEXSOLARパネルからAmazonで買...
-
真空管 300 B の前段について
-
cout と cerrの違い
-
printfとputcharの違いは
-
スマホ充電器購入にあたり
-
PD充電器について
-
TV出力ポートをOFFにすれば良い...
-
COBOLのMOVEで桁数が異なる場合
-
Windows Formアプリからコンソ...
-
CrystalReportの文字列の折返し...
-
C#でアクセス権限の取得方法が...
-
coutで出力した文字を消去する...
-
【UWSC】WEBページ中の特定文字...
-
KEYENCEのシーケンスプログラム...
-
CRC16計算について
-
標準出力の上書き
おすすめ情報