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