PHP で MySQL クエリから CSV を作成する
PHP では、MySQL クエリを CSV ファイルに効率的に変換できます。一時ファイルを回避すると、ファイル システムのアクセス許可の設定やディレクトリ パスの管理が不要になり、移植性が向上します。さらに、生成された CSV ファイルには、フィールド名を含むヘッダー行が含まれている必要があります。
このタスクを実行するには、次の方法を使用できます。
オプション 1: INTO OUTFILE メソッドを使用する
MySQL は、クエリ結果を CSV ファイルに直接出力する INTO OUTFILE メソッドを提供します。たとえば、次のクエリは、my_table テーブルから c:/mydata.csv という名前の CSV ファイルにデータをエクスポートします:
SELECT * INTO OUTFILE "c:/mydata.csv" FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY "\n" FROM my_table;
オプション 2: カスタム PHP スクリプト
または、カスタム PHP スクリプトを使用してクエリ結果をフェッチし、CSV を生成することもできます。これには以下が含まれます:
次のコード スニペットは、このアプローチを示しています。
$select = "SELECT * FROM table_name"; $export = mysql_query ( $select ) or die ( "Sql error : " . mysql_error( ) ); $fields = mysql_num_fields ( $export ); for ( $i = 0; $i < $fields; $i++ ) { $header .= mysql_field_name( $export , $i ) . "\t"; } while( $row = mysql_fetch_row( $export ) ) { $line = ''; foreach( $row as $value ) { if ( ( !isset( $value ) ) || ( $value == "" ) ) { $value = "\t"; } else { $value = str_replace( '"' , '""' , $value ); $value = '"' . $value . '"' . "\t"; } $line .= $value; } $data .= trim( $line ) . "\n"; } $data = str_replace( "\r" , "" , $data ); if ( $data == "" ) { $data = "\n(0) Records Found!\n"; } header("Content-type: application/octet-stream"); header("Content-Disposition: attachment; filename=your_desired_name.xls"); header("Pragma: no-cache"); header("Expires: 0"); print "$header\n$data";
これらの方法を採用することで、移植性とヘッダーの組み込みを確保しながら、MySQL クエリ結果を CSV ファイルに効率的に変換できます。
以上がPHP で MySQL クエリから CSV ファイルを効率的に作成するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。