php - 使用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;
}
解决方案
您可以使用 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 条重复行的记录...
推荐阅读
- python - Tensorflow 模型是用输入张量的形状构建的,但它在形状不兼容的输入上被调用(神经网络)
- python - 提交后如何保留表单值?
- django - 不要将当前值放在表单中
- python - 用替换求解for循环中的单个(非线性)方程?
- reactjs - 无法在带有 typescript react.js 项目的 electron.js 中的模块外部使用 import 语句
- exchangelib - ews 收件箱的条件计数 - exchangelib 查询
- c# - Blazor 使用 IDisposable 清除内存
- opengl - GlutSolidCube 透明度
- excel - 如何在内置函数中使用 IF 语句
- python - 在 pythonanywhere 中为非英语语言使用 pytesseract ocr