Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php mysql表视频时间更新_Php - Fatal编程技术网

php mysql表视频时间更新

php mysql表视频时间更新,php,Php,您好,我有一个视频表,在这个表中我有一个名为“视频更新”的列。当我打开相关的视频页面时,更新过程就完成了。我希望每30分钟更新一次。我不希望每次登录时都更新页面。我希望每30分钟做一次。但是我不知道怎么做,因为我对php的了解很少。你能举个例子吗 例如:当我单击“video?id=3”时,如果数据库中的更新时间在30分钟之前完成,则不会更新。如果超过30分钟,则更新更新 $data['page_content'] = json_encode($result[0]['items'][0]); $d

您好,我有一个视频表,在这个表中我有一个名为“视频更新”的列。当我打开相关的视频页面时,更新过程就完成了。我希望每30分钟更新一次。我不希望每次登录时都更新页面。我希望每30分钟做一次。但是我不知道怎么做,因为我对php的了解很少。你能举个例子吗

例如:当我单击“video?id=3”时,如果数据库中的更新时间在30分钟之前完成,则不会更新。如果超过30分钟,则更新更新

$data['page_content'] = json_encode($result[0]['items'][0]);
$data['page_update'] = date('Y-m-d H:i:s');
$id = $service_['page_id'];

if ($control) {
    YoutubeApi::VideoUpdate($id, $data);
}

class YoutubeApi
{
    public static function VideoUpdate($id, $data)
    {

        global $db;
        return $query = $db->update('pages')
            ->where('page_id', $id)
            ->set($data);
    }
}

您应该向更新查询添加下一个条件:

时间到秒(TIMEDIFF(now(),更新时间))/60>30

  • TIMEDIFF
    计算更新时间和现在之间的时间
  • 时间到秒
    将结果转换为秒
  • 除以60得到以分钟为单位的时间
因此,您的查询将如下所示:

update videos 
set updated_at = now() 
where id = 3 and TIME_TO_SEC(TIMEDIFF(now(), updated_at))/60 > 30;

您还可以使用SQL函数
TIMESTAMPDIFF

update videos 
set updated_at = now() 
where id = 1 and TIMESTAMPDIFF(MINUTE, updated_at, now()) > 30;
要在雄辩的查询生成器中实现它,请使用下一步:

$query = $db->update('pages')
            ->where('page_id', $id)
            ->whereRaw('TIMESTAMPDIFF(MINUTE, updated_at, now()) > 30')
            ->set($data);

“我希望每30分钟更新一次”…使用Cron作业运行更新脚本。(或计划任务,如果您使用的是Windows)。这不是一个真正的PHP问题,只是您需要知道如何在系统上自动运行程序。现在你知道了——或者至少你知道你需要调查什么了。你可以创建一个简单的php脚本来执行“更新过程”,然后用一个你误解我的脚本运行这个脚本。例如:当我单击“video?id=3”时,如果数据库中的更新时间在30分钟之前完成,则不会更新。如果超过30分钟,让更新更新。是Laravel框架吗?我更新了这个问题,但我不明白怎么做你说的。不是Laravel,我在使用php。你可以举一个例子,比如basicdb,但是pdo。