Я хочу выполнить SQL-запрос через cron. Я подумал, что создам .sql
файл и вызываю его из сценария, который я помещаю в папку cron. Запрос относительно большой и написан не мной, поэтому я бы предпочел не создавать его заново на PHP.
Может ли кто-нибудь помочь? Я не совсем понимаю, как запустить SQL-запрос из сценария. Заранее спасибо.
РЕДАКТИРОВАТЬ: просто для некоторой справочной информации запрос предназначен для получения данных из нескольких таблиц и организации их в файле csv.
Каждая база данных имеет клиентский инструмент командной строки.
Для MySQL см. man mysql
команда добавить в cron что-то вроде этого
cat /dir/query.sql|mysql database -u user -ppass >result
Для PHP вы можете использовать файловый ввод-вывод для чтения запроса, после чего используйте строковую переменную вместо запроса в ваших запросах.
Решение, которое я в итоге использовал, заключалось в том, чтобы поместить запрос в «здесь документ». Затем этот сценарий bash был реализован с помощью cron. Для получения дополнительной информации перейдите по этой ссылке: 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