我正在运行一个读取大型json文件的文件,然后将内容保存到数据库中。
当我直接运行文件时,它会保存数据
但是当我尝试通过cron job运行它时,它会将null保存到数据库中。
这是我的代码
include('conn.php');
$file = "https://api.binance.com/api/v1/ticker/allPrices";
$json = file_get_contents($file);
updatePrice();
function updatePrice(){
global $con;
global $price;
$sql="INSERT INTO table(price) VALUES('$price')";
if(mysqli_query($con,$sql)){
echo "price updated";
}}?>
提前致谢!
答案 0 :(得分:0)
确保文件位置的值是绝对值而不是相对路径。 Cron作业正在使用另一个id(通常是root),因此您需要显式使用/home/userid/path/to/file.txt而不是./file.txt。 希望这可以帮助。感谢。
已编辑:这也适用于您的函数file_get_contents。
答案 1 :(得分:0)
启用脚本的错误报告,并查看警告或错误。
检查是否为cli启用了allow_url_fopen
(某些系统具有针对cli和web的单独.ini文件)。您可以php --info
检查cli上使用的文件。
我强烈建议不要使用file_get_contents()
,因为它不会处理重定向或响应延迟。请尝试使用cURL:http://www.php.net/manual/en/ref.curl.php