如何让服务器重置表列中的值。
例如,我有一个名为“users”的表,其中包含一个名为“rebuy”的列。重购列包含每个用户的“是”或“否”值。我希望服务器在星期一凌晨1点将每周的重购列重置为“否”。
我可以手动登录mysql服务器
UPDATE users SET rebuy = 'no'
但我希望服务器只是因为我无法手动执行此操作。
答案 0 :(得分:2)
简单的解决方案是添加一个cron-job。 这是一个非常好的教程 http://www.cyberciti.biz/faq/how-do-i-add-jobs-to-cron-under-linux-or-unix-oses/
您可以完全满足您的需求。设置日期和时间以及cronjob 会自动完成
很难给你一个代码示例,因为它可能在不同的操作系统上有所不同。
你的目标是获得类似的东西:
连接到您的服务器并输入:crontab -e
0 1 * * 1 /path/to/your/phpscript
(未经测试,但应该没问题)
答案 1 :(得分:0)
您可以让服务器重置标志。或者,你基本上什么都不做。也就是说,代替存储标志值,您可以在最后设置标志时存储。然后,根据此信息使用视图将标志重新添加。
因此,请定义表格,以便:
rebuy_datetime date
创建视图:
create view v_table as
select t.*,
(case when rebuy_datetime >= curdate() - interval weekday(curdate()) day + interval 1 hour
then 'yes'
else 'no'
end)
from table t;
然后,当您查询表时,标志会自动设置。