简体   繁体   English

如何将 mysql 表导出到 csv 文件并下载

[英]How can i export mysql table to csv file and download it

Am tryng to export data to csv file from mysql.我正在尝试将数据从 mysql 导出到 csv 文件。 I took the following script but the $result variable have error: mysql_num_fields tells the argument supplied is not valid我使用了以下脚本,但 $result 变量有错误:mysql_num_fields 告诉提供的参数无效

$filename = 'myfile.csv';
$result = db_query("SELECT * FROM {loreal_salons}");


drupal_set_header('Content-Type: text/csv');
drupal_set_header('Content-Disposition: attachment; filename=' . $filename);

$count = mysql_num_fields($result);
for ($i = 0; $i < $count; $i++) {
    $header[] = mysql_field_name($result, $i);
}
print implode(',', $header) . "\r\n";

while ($row = db_fetch_array($result)) {
    foreach ($row as $value) {
        $values[] = '"' . str_replace('"', '""', decode_entities(strip_tags($value))) . '"';
    }
    print implode(',', $values) . "\r\n";
    unset($values);
}

If you don't mind using a temporary file, you can do:如果您不介意使用临时文件,可以执行以下操作:

SELECT *
INTO OUTFILE '/tmp/myfile.csv'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM loreal_salons

as your query, then simply do:作为您的查询,然后只需执行以下操作:

header('Content-type: text/csv');
header('Content-disposition: attachment; filename=myfile.csv');
readfile('/tmp/myfile.csv');
unlink('/tmp/myfile.csv');
exit();

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM