仅在经过1小时后如何更新SQL数据

时间:2019-02-15 13:18:10

标签: php mysql sql

我正在使用优惠券代码网站,它有一个产品部分。我不想每次访问者加载页面时都从购物网站的API服务器中提取数据,而是希望将数据存储在SQL中并使用它。 但是数据应该每小时更新一次,或者仅在经过一个小时后才更新。 不需要cron作业,因为我不想自动发生。 如果一个小时内有100个网页用户,他们将获得相同的数据,但是如果第一个用户在1小时后到达,则应该用SQL覆盖产品信息。

我从w3schools.com获得了以下代码,它可以很好地在SQL中保存数据。 我希望只有当数据的时间超过1小时时,它才能帮助我覆盖数据。否则,它应充当“数据已存在”的角色。

<?php
$servername = "localhost";
$username = "nuser";
$password = "pass";
$dbname = "db";

$ProductId = "smartphone";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

$check=mysqli_query($conn,"select * from testdb where productid='$ProductId'");
$checkrows=mysqli_num_rows($check);

   if($checkrows>0) {
      echo "Data Already Exists";
   } else {  
    //insert results from the form input


$sql = "INSERT INTO Flipkart (productid, title, price)
VALUES ('productid','title','price')";

if ($conn->query($sql) === TRUE) {
    echo "New record created successfully";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}

$conn->close();}
?>

以上代码将数据保存在数据库中,它还可以检测重复数据。但是我只想添加一个函数,如果当前数据时间超过1小时,它将覆盖数据。数据库具有TIMESTAMP“ reg_date”列,该列以YYYY-MM-DD HH:MM:SS格式存储创建的日期和时间。

我是SQL和php的新手,所以请问如果这个问题有任何问题...

1 个答案:

答案 0 :(得分:0)

您可以使用cron作业。

这是到目前为止为cron作业找到的PHP代码的最佳解释:      https://code.tutsplus.com/tutorials/managing-cron-jobs-with-php--net-19428