Cron将空数组发送到我的数据库中

时间:2018-02-24 22:45:20

标签: php mysql json cron

我正在运行一个读取大型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";

}}?>

提前致谢!

2 个答案:

答案 0 :(得分:0)

确保文件位置的值是绝对值而不是相对路径。 Cron作业正在使用另一个id(通常是root),因此您需要显式使用/home/userid/path/to/file.txt而不是./file.txt。 希望这可以帮助。感谢。

已编辑:这也适用于您的函数file_get_contents。

答案 1 :(得分:0)

  1. 启用脚本的错误报告,并查看警告或错误。

  2. 检查是否为cli启用了allow_url_fopen(某些系统具有针对cli和web的单独.ini文件)。您可以php --info检查cli上使用的文件。

  3. 我强烈建议不要使用file_get_contents(),因为它不会处理重定向或响应延迟。请尝试使用cURL:http://www.php.net/manual/en/ref.curl.php