У меня есть следующая команда SQL внутри файла test.php для выполнения cron:
$sql = "DELETE FROM `module_currency_rates_rate`;
LOAD DATA INFILE '/export/home/mysql/test.txt' INTO TABLE `module_currency_rates_rate` FIELDS TERMINATED BY ',';
UPDATE `module_currency_rates_rate` SET `date_add` = now();
";
if(!mysql_query($sql)) exit(mysql_error());
Когда я выполняю этот скрипт через командную строку (все пути являются абсолютными, чтобы доказать, что здесь нет ошибок) в оболочке:
/www2/bin/php /export/home/mysql/bin/test.php
Я всегда получаю следующую ошибку:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LOAD DATA INFILE '/export/home/mysql/test.txt'
Тем не менее, когда я запускаю тот же сценарий WITHIN командной строки mysql (mysql-uuser -ppass), файлы загружаются правильно и синтаксических ошибок нет! Я отчаянно ищу решение для запуска запроса через скрипт PHP. Просто добавлю: все необходимые разрешения даны для файлов и для пользователей Unix.
Задача ещё не решена.
Других решений пока нет …