首頁 >資料庫 >mysql教程 >如何在 PHP 中有效率地將 MySQL 查詢結果轉換為 CSV?

如何在 PHP 中有效率地將 MySQL 查詢結果轉換為 CSV?

Linda Hamilton
Linda Hamilton原創
2024-12-24 16:59:17598瀏覽

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 文件。

方法二:手動轉換

$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 格式的可攜式解決方案,提供了靈活性和高效的處理。

以上是如何在 PHP 中有效率地將 MySQL 查詢結果轉換為 CSV?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn