使用 php 在 5 秒内将数据保存到 MySQL [关闭]

Posted

技术标签:

【中文标题】使用 php 在 5 秒内将数据保存到 MySQL [关闭]【英文标题】:Saving data to MySQL in 5 seconds with php [closed] 【发布时间】:2018-09-08 09:47:45 【问题描述】:

有来自电话交换机的数据,数据自带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;

【问题讨论】:

你有什么问题? 【参考方案1】:

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

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

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

【讨论】:

以上是关于使用 php 在 5 秒内将数据保存到 MySQL [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何在同一页面内将值从 Js 传递到 PHP [重复]

真快!10秒内将k8s集群运行起来

PHP如何使用laravel 5将数据从数组保存到mysql

竖表变横表怎么操作?你有啥快速的操作方法吗?

将数据保存到文件和。将其保存到 MySQL DB

5分钟彻底理解Redis持久化