如何从phpMyAdmin以给定的时间间隔自动生成CSV

时间:2011-05-03 19:29:41

标签: php mysql

我该怎么做?可以用cron工作吗?如果是这样,我在哪里可以阅读如何做到这一点?

我需要每隔很多小时将数据从我的数据库转储到CSV文件中。我希望将CSV文件保存到服务器上的文件夹中。这甚至可以用MySQL吗?我对此表示感谢。

3 个答案:

答案 0 :(得分:3)

如果您有适当的服务器访问权限,我建议您从cron作业mysqldump

详细了解using mysqldump to output a CSV

答案 1 :(得分:2)

没有必要使用PHP。您可以安排查询通过cron作业定期运行,并使用以下代码输出到CSV:

SELECT col1, col2, col3 FROM table WHERE whatever='whatever' INTO OUTFILE 'reports/result.csv'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
ESCAPED BY ‘\\’
LINES TERMINATED BY '\n'

将上述查询存储在文件中,cron命令看起来像

mysql -u username -p password < filewiththequery.sql

如果您需要以可以重新导入数据库的方式转储整个数据库,请改用mysqldump

答案 2 :(得分:0)

制作一个包含以下内容的脚本:

select * into outfile '/tmp/data.csv' 

字段以','生效'''终止 逃脱'\' 以'\ n'结尾的行 从表;

安排工作 crontab -u username -e

0 24/4 * * *用户脚本名称

那应该每6小时给你一次转储。

您需要阅读一些脚本语言,以便在每次运行时为您的mysql语句提供唯一的名称。