首頁 >後端開發 >php教程 >如何使用兩種不同的方法在 PHP 中將 MySQL 查詢結果匯出為 CSV?

如何使用兩種不同的方法在 PHP 中將 MySQL 查詢結果匯出為 CSV?

Patricia Arquette
Patricia Arquette原創
2024-12-21 04:54:10344瀏覽

How to Export MySQL Query Results as CSV in PHP Using Two Different Methods?

如何在 PHP 中將 MySQL 查詢結果匯出為 CSV

可以透過多種方法將 MySQL 資料庫中的資料匯出為 CSV。這裡有兩種有效的方法:

使用MySQL 的SELECT INTO OUTFILE

此方法可讓您將查詢結果直接匯出到伺服器上的CSV 檔案:

$query = "SELECT * FROM my_table";
$csv_path = "c:/mydata.csv";
$result = mysql_query("SELECT * INTO OUTFILE '" . $csv_path . "' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' LINES TERMINATED BY '\n' FROM my_table");

創建CSV手動

或者,您可以使用 PHP 手動建立 CSV 檔案:

$select = "SELECT * FROM table_name";
$export = mysql_query($select) or die("Sql error : " . mysql_error());

$fields = mysql_num_fields($export);

// Generate the header line with field names
for ($i = 0; $i < $fields; $i++) {
    $header .= mysql_field_name($export, $i) . "\t";
}

// Process each row of the query results
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);

// Set the HTTP headers for CSV download
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=your_desired_name.xls");
header("Pragma: no-cache");
header("Expires: 0");

// Output the CSV
print "$header\n$data";

以上是如何使用兩種不同的方法在 PHP 中將 MySQL 查詢結果匯出為 CSV?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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