我想要一个每月插入数据的功能。。。
我有一些想法来实现这一点,如下所示。。。。
当用户创建"发票"时,"发票"会在用户创建后的下个月自动生成。
让我们有一些代码。。。
INSERT INTO INVOICE (id,user,date,bill_money) VALUES ('','XYZ','25/03/2015','100');
这个现在运行得很好,下个月应该自动插入相同的条目。。
为此,我有一个逻辑,当用户在那个时间首次登录门户时,我必须检索用户的最后一次登录,从那个日期到当前登录日期,我试图插入那些30天前的数据。。。
我选择用户上次登录日期后的第二天(日期),然后检查截至当前日期的每一天。
检索用户上次登录日期
echo $this->session->userdata('name')
检查间隔lastlogindate() + INTERVAL 30 DAY == NOW()
如果这变为真,则插入数据
但这里的问题是,我想实施一个月、四个月、一年这种流动性更好还是有其他方法可以做到这一点。。??
我听说了cron job
和MySQL Event
,哪一个在这两者中最好,以及它们是如何工作的,哪一种在性能方面是有效的。。。
我想听听这方面的建议。非常感谢。
如果您想要定期发票。只需将发票存储一次,然后安排一个cron作业,该作业将在计划的时间每天运行。Cron job将运行您的php脚本来做任何您想做的事情:将发票存储在数据库中或通过电子邮件发送给用户。如果您不了解cron作业,可以在以下答案中找到基础知识:如何使用PHP创建cron作业?
EDIT:您必须使用cli 来安排cron作业
Mysql事件
我认为这对我来说更好,因为我没有使用Cron Job。。。
对于Mysql事件签出语法,并有一个有趣的。。。