【问题标题】:Cleanest way to export mysql query to CSV in PHP [duplicate]在 PHP 中将 mysql 查询导出为 CSV 的最简洁方法 [重复]
【发布时间】:2011-12-17 17:10:50
【问题描述】:

可能重复:
PHP code to convert a MySQL query to CSV

将 mysql 查询导出为 CSV(适用于 Excel 2003 及更高版本)的最佳和最干净的方法是什么?就测试、维护、可配置而言,“最佳”...因此(标准)PHP 库之类的东西将是理想的解决方案。

它应该正确处理外壳、转义、字符集、cr-lf、第一行中的字段名称, ...等

在 SO(如 this one)有几个问题,但没有一个真正关注我上面需要的属性。

我的一些想法:

  • 使用fputcsv? (但charset、转义和cr-lf貌似无法设置!)
  • 从 phpmyadmin 中提取一些代码...?
  • SELECT * INTO OUTFILE 在我的服务器上不起作用(访问被拒绝)
  • system("mysqldump ...") 是不可能的(安全模式托管)

【问题讨论】:

  • 嗯。我不太确定你想要什么。 CSV 文件不是 XLS 文件。它只是一个逗号(或分号)分隔的文件。这与 Excel 2003 没有太大关系。我不明白为什么上面链接的answer 中的“或”不能满足您的问题?您是否正在寻找开箱即用的解决方案?就像我说的,它只是一个 CSV.. 上面的解决方案负责转义,您需要做的就是添加“第一行中的字段名称”
  • 看到一个格式良好且经过研究的问题让我感到温暖。你有我的 +1。
  • 感谢@Truth。我努力了:)
  • @Richard,我写了“csv for excel”,因为我猜 CSV 格式可能存在细微差别 - 在 PHPmyAdmin 中,您可以选择 CSV 和“CSV for MS Excel”...

标签: php mysql csv


【解决方案1】:

正如您所说,fputcsv 对您的要求非常有限。从 phpMyAdmin 中提取当然是可能的(这里是 export logic),但使用专用库可能会更成功。这里有几个选择:

  • php-csv-utils。它是轻量级的、可配置的,看起来可以轻松放入大多数应用程序中。
  • File_CSV 来自 PEAR,缺乏文档,但至少在 2011 年发布了。

这两个都没用过,我不愿意选择一个,但根据文档和可用性,我会选择第一个。

补充:我刚刚发现了this SO question。查尔斯的回答与我的答案非常相似,我想我应该在这里链接到它!

【讨论】:

  • 很好的答案,非常感谢有用的链接!这正是我需要的!
  • 最后我用了php-csv-utils。查看实际上不起作用的“新家”的引用,该工具目前似乎没有维护。但效果很好,也许不需要 mtce :-)
猜你喜欢
  • 2013-04-29
  • 1970-01-01
  • 2021-09-27
  • 1970-01-01
  • 1970-01-01
  • 2013-05-13
  • 2020-12-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多