我可以知道这是否可能吗
在不使用按钮的情况下更新MySQL数据库,我指的是类似脚本的东西。
场景:
我希望有一个正在运行的脚本,它将搜索一个符合我想要的条件的值,然后它将自动更新该值
示例:
我有名为-dateStarted
、dateExpiration
和status
的列,所以如果dateExpiration
是今天的列,它将把status
的值从ACTIVE
更改为INACTIVE
PS:dateStarted
+30天=dateExpiration
到目前为止,这是我理想的代码,但不知道如何在不使用按钮的情况下调用数据并更新它——就像它必须在后台运行一样。
$dateExpired = date('Y-m-d', strtotime($dateStart. ' + 30 days'));
$dateExpired2 = date('Y-m-d', strtotime($dateStart. ' + 90days'));
$status = "FRESH";
if(strtotime($dateStart)<strtotime('-30 days')){
$status = "INACTIVE";
}
if(strtotime($dateStart)<strtotime('-90 days')){
$status = "DORMANT";
}
谢谢。
为了根据事件自动更新数据库,可以使用MySQL触发器。
手册示例:
mysql> delimiter //
mysql> CREATE TRIGGER upd_check BEFORE UPDATE ON account
-> FOR EACH ROW
-> BEGIN
-> IF NEW.amount < 0 THEN
-> SET NEW.amount = 0;
-> ELSEIF NEW.amount > 100 THEN
-> SET NEW.amount = 100;
-> END IF;
-> END;//
mysql> delimiter ;
参考:
- https://dev.mysql.com/doc/refman/5.5/en/trigger-syntax.html
首先需要在SQL控制面板中创建触发器。
如果您希望运行cron作业,这可能是您的一个选项,请参阅以下内容:
- 如何使用PHP创建cron作业
- http://code.tutsplus.com/tutorials/managing-cron-jobs-with-php--net-19428