如何使用 Zend Framework 使用 mySQL 的 INTO OUTFILE 功能导出到 CSV
我希望使用 Zend Framework 将大量数据导出到 CSV 文件中以供用户下载。有没有办法使用 Zend_Db 的功能并使用“INTO OUTFILE”语法将文件输出为 csv?基本上我希望能够调整我的 Zend_Db 模型以导出到 csv 文件而不是返回 PHP 数组。我想使用的 mysql 语法的一个例子是:
SELECT a,b,a+b INTO OUTFILE '/tmp/result.text'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM test_table;
I am looking to export a large amount of data into a CSV file for user download using Zend Framework. Is there any way to use Zend_Db's functionaity and use the "INTO OUTFILE" syntax to output the file as a csv? Basically I want to be able to adapt my Zend_Db models to export to a csv file instead of returning a PHP array. An example of the mysql syntax I want to use would be:
SELECT a,b,a+b INTO OUTFILE '/tmp/result.text'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM test_table;
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用 Zend_Db $db 您可以直接发出任何请求:
请注意,您需要数据库连接上使用的用户的 FILE 权限,这是一个非常高的权限(
仅在某些版本的 MySQL 上为 root编辑:必须为服务器上的所有数据库设置)。因此,这不应该是您的主要 MySQL 连接,最好的办法是仅在 OUTFILE 查询所需的特定代码中打开特殊的高权限连接。Using a Zend_Db $db you can put any request directly:
Note that you'll need the FILE privilege on the user used on the DB connection, it's a very high privilege (
only root on some versions of MySQLedit: must be set for all databases on the server). So this should not be your main MySQL connection, the best thing would be to open the special high privilege connection only in the specific code needed for the OUTFILE query.您可以尝试构建一个基本查询, 将其转换为字符串 然后从那里追加。优点是您可以使用 Zend 的绑定功能(至少对于 where 子句),以防万一您需要。就像这样:
You can try to build a base query, convert it to a string and then append from there. The advantage being that you can use Zend's bind functionality (at least for the where clause), in case you need that. Like so: