开发者社区> 问答> 正文

PHP代码将MySQL查询转换为CSV

请问在PHP中将MySQL查询转换为CSV的最有效方法是什么?

最好避免使用临时文件,因为这会降低可移植性(需要目录路径和设置文件系统权限)。

CSV还应包括一列字段名。

展开
收起
保持可爱mmm 2020-05-10 20:59:08 528 0
1 条回答
写回答
取消 提交回答
  • SELECT * INTO OUTFILE "c:/mydata.csv" FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY "\n" FROM my_table; (有关此文档,请参见:http : //dev.mysql.com/doc/refman/5.0/en/select.html)

    要么:

    $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 ( ( !isset( $value ) ) || ( $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";来源:stack overflow

    2020-05-10 20:59:26
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
One Box: 解读事务与分析一体化数据库 HybridDB for MySQL 立即下载
One Box:解读事务与分析一体化数据库HybridDB for MySQL 立即下载
如何支撑HTAP场景-HybridDB for MySQL系统架构和技术演进 立即下载

相关镜像