【发布时间】:2020-01-16 04:47:27
【问题描述】:
我有一个使用LOAD DATA LOCAL INFILE 和csv file 的PHP 脚本。
脚本下载 csv 文件并将其存储到与脚本相同的位置,然后使用LOAD DATA LOCAL INFILE 执行查询以插入 csv。
如果重要的话,csv 和 php 脚本的位置都在 public_html 之外。
当我将脚本作为 cron 作业 运行时,它会运行、下载 csv(并存储在正确的位置),但 不会插入 到数据库中。查询返回 false。
如果我打开 终端 并运行脚本,它会将 csv 和 inserts 下载到数据库中。查询返回 true。
在终端运行和通过cron运行有区别吗?
这是 cron 行:
/usr/bin/php -q /home/username/my_crons/csvfile/csvdownload.php
注意:我还有其他可以将数据正确插入数据库的 cron 脚本,但这是唯一使用 LOAD DATA LOCAL INFILE 的脚本。也许这是该命令的问题。
【问题讨论】:
-
在运行查询后检查mysql错误以找出失败的原因。
-
对不起,应该是我做的第一件事。是的,好像 LOAD DATA LOCAL INFILE 是被禁止的。我以为我通过 WHM 启用了它,但似乎我查看我的主目录的 cron 作业使用了不同的 php 版本,我必须为它启用 mysqli.allow_local_infile。谢谢!