【问题标题】:how to export a mysql db table data to a spreadsheet and then send it to the browser?如何将 mysql db 表数据导出到电子表格,然后发送到浏览器?
【发布时间】:2013-07-05 13:24:15
【问题描述】:

我需要从我的数据库中将名为“app_users”的表导出到电子表格中,例如 csv。我该怎么做呢?另外,如何将此文件发送到浏览器?我正在使用 Zend 框架。

【问题讨论】:

    标签: zend-framework zend-db zend-db-table


    【解决方案1】:

    根据this answer,如果您可以直接访问数据库服务器所在的文件系统,则可以运行以下 SQL 查询:

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

    编辑:您可能还需要在创建并提供给用户后使用 php 删除此文件,否则下次运行上述查询时,它可能会拒绝覆盖该文件 (这是默认值)。

    【讨论】:

    • 谢谢瑞恩!以及如何将其发送到浏览器,以便提示用户“保存”对话框?
    • 如果您在服务器上的 php 中执行此 sql 命令,请在 php 中添加将文件返回给用户浏览器的代码。有关示例,请参阅 stackoverflow.com/a/2028918/808532,尽管您需要将标头类型更改为 csv。
    • 它就像一个魅力!谢谢!但是,csv 文件在顶行中不包含任何字段名称。有没有办法做到这一点?
    • 不幸的是,您必须在查询中按照SELECT 'first', 'second', 'third' UNION ALL SELECT * FROM app_users...查看pressingquestion.com/1528089/…
    • 另外,我正在尝试使用 unlink() 删除此文件。但由于文件的所有者是 mysql,我不能。我该如何解决这个问题?
    【解决方案2】:

    点击mysql工具栏中的导出按钮到sql数据库

    【讨论】:

    • 当访问者点击我网站上的下载按钮时,我需要将文件发送到浏览器! :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-25
    • 1970-01-01
    • 2022-01-17
    • 2018-10-26
    相关资源
    最近更新 更多