首页 > 解决方案 > 使用php在5秒内将数据保存到MySQL

问题描述

有来自电话交换机的数据,数据自带json

来源:https ://github.com/verimor/Bulutsantralim-API/blob/master/cdrs.md

这里没有问题。

之后,我想通过每 5 秒检查一次从这里获得的数据来注册数据库。

json内容不断更新,因为是不断搜索。

我在等你的帮助,非常感谢。

我很抱歉我的英语不好。

测试代码:

$json = file_get_contents('http://api.bulutsantralim.com/cdrs?key=K12345678-1234-5678-4321-123456789012');

$data = json_decode($json,true);

echo $data['cdrs'][0]['start_stamp'];
echo '-';
echo $data['cdrs'][0]['direction'];
echo '-';
echo  $data['cdrs'][0]['caller_id_number'];
echo '-';
echo  $data['cdrs'][0]['caller_id_number'];
echo '-';
echo $data['cdrs'][0]['destination_number'];
echo '-';
echo $data['cdrs'][0]['result'];
echo '-';
echo substr($data['cdrs'][0]['end_stamp'],0,10);

MySql 插入代码:

$sql = "INSERT INTO talep (test)  VALUES ('$test')";

if ($conn->query($sql) === TRUE) {
    echo 'Success';
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}

标签: phpmysqlsave

解决方案


您可以使用 cron 作业,它将每 5 秒运行一次脚本

有关 cron 作业的更多信息,您可以查看https://kb.iweb.com/hc/en-us/articles/230244168-Setting-up-cron-jobs-with-cPanel

重要的是,您应该检查数据库中是否存在记录,然后插入数据库中。例如,您的文件中有 1,2,3 条记录用于 $json.. 现在这 3 条记录将插入 dsatabase . 5 秒后,如果再添​​加 2 条记录...现在 $json 总共有 5 条记录,在这 5 条中,前 3 条已经在 5 秒之前插入到数据库中。所以您需要检查前 3 条记录是否是已经在 db 中,所以只应插入第 4 和第 5 条记录...否则您将获得前 3 条 + 新 5 条(包括前 3 条)记录 = db 中有 8 条重复行的记录...


推荐阅读