我想通过 cron 运行 SQL 查询。我想我会创建一个.sql
文件并从我放在 cron 文件夹中的脚本中调用它。该查询相对较大,而且不是我编写的,所以我不想在 PHP 中重新创建它。
有人能帮忙吗?我不太清楚如何从脚本运行 SQL 查询。提前致谢。
编辑:仅提供一些背景信息,该查询旨在从多个表中获取数据并将其组织在 csv 文件中。
答案1
每个数据库都有一个命令行客户端工具
对于 MySQL,请参阅man mysql
在 cron 中添加类似这样的命令
cat /dir/query.sql|mysql database -u user -ppass >result
对于 PHP,您可以使用文件 IO 来读取查询,然后在请求中使用字符串变量代替查询。
答案2
我最终使用的解决方案是将查询放在“此处文档”中。然后使用 cron 实现此 bash 脚本。有关更多信息,请查看此链接: http://snippets.dzone.com/posts/show/3078
为了防止该链接失效,下面是示例代码的片段:
#! /usr/bin/env bash
# execute some bash scripting commands here
mysql mydatabase <<SQL_ENTRY_TAG_1
SELECT *
FROM mytable
WHERE somecondition='somevalue';
SQL_ENTRY_TAG_1
# execute other bash scripting commands here
mysql mydatabase <<SQL_ENTRY_TAG_2
SELECT *
FROM myothertable
WHERE someothercondition='someothervalue';
SQL_ENTRY_TAG_2