この記事の例では、php を使用して、指定されたエンコーディングを使用して mysql データを csv ファイルにエクスポートする方法について説明します。参考のためにみんなで共有してください。具体的な実装方法は以下の通りです
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
/* * MySQL データを CSV にエクスポートするための PHP コード * * MySQL クエリの結果をダウンロード用の CSV ファイルとして送信します * UTF-8への変換が簡単です。 */
/* * データベース接続を確立します */
$conn = mysql_connect('localhost', 'login', 'pass') または die(mysql_error()); mysql_select_db('database_name', $conn) または die(mysql_error($conn)); mysql_query("SET NAMES CP1252"); /* * SQLクエリを実行します */ $query = sprintf('SELECT field1,field2 FROM table_name'); $result = mysql_query($query, $conn) または die(mysql_error($conn)); /* * 応答ヘッダーをブラウザに送信します * 次のヘッダーは、データをexport.csvというCSVファイルとして扱うようにブラウザに指示します */ header('Content-Type: text/csv; charset=cp1252'); header('Content-Disposition:attachment;filename=output.csv'); /* * 出力ヘッダー行 (少なくとも 1 行が存在する場合) */
$row = mysql_fetch_assoc($result); if ($row) { echocsv(array_keys($row)); }
/* * 出力データ行 (少なくとも 1 行が存在する場合) */ while ($row) { echocsv($row); $row = mysql_fetch_assoc($result); }
/* * ほとんどの CSV 実装との一貫性を維持しながら、入力配列を CSV データとしてエコーします * - 必要に応じて二重引用符を囲みとして使用します * - 二重引用符をエスケープするために二重引用符を使用します * - 行区切り文字として CRLF を使用します */
関数 echocsv($fields) { $区切り文字 = ''; foreach ($fields として $field) { if (preg_match('/\r|\n|,|"/', $field)) { $field = '"' .str_replace('"', '""', $field) . }$separator . $field; $区切り文字 = ','; } エコー「rn」; } ?>
|