ホームページ >データベース >mysql チュートリアル >MySQL クエリ結果を PHP で CSV に効率的に変換するには?

MySQL クエリ結果を PHP で CSV に効率的に変換するには?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-24 16:59:17597ブラウズ

How to Efficiently Convert MySQL Query Results to CSV in PHP?

MySQL クエリを CSV に変換するための PHP コード

PHP には、MySQL クエリの結果を CSV 形式に変換する効率的な方法があり、一時ファイルが必要です:

方法 1: SELECT INTO OUTFILE

SELECT * INTO OUTFILE "c:/mydata.csv"
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY "\n"
FROM my_table;

このコマンドは、クエリ結果を CSV ファイルに直接エクスポートします。構文とオプションについては、MySQL のドキュメントを参照してください。

方法 2: 手動変換

$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 (empty($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 形式にエクスポートするための移植可能なソリューションを提供し、柔軟性と効率的な処理を提供します。

以上がMySQL クエリ結果を PHP で CSV に効率的に変換するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。