我有一个名为pending
的字段,并声明为布尔值,默认值为0
:
`pending` tinyint(1) NOT NULL DEFAULT '0'
我正在数据库中再次运行更新查询,以将q pending
的状态更改为1
,如下所示
$sql = "UPDATE `appointments` SET `pending` = '1' WHERE `appointments`.`id` = 124;
现在我的问题是,有没有办法在30分钟后通过采用像
这样的条件子句自动重新陈述pending
到0
// After 30 Minutes of update!
if (!confirmed){
$sql = "UPDATE `appointments` SET `pending` = '0' WHERE `appointments`.`id` = 124;
}
表架构
CREATE TABLE IF NOT EXISTS `appointments` (
`id` int(6) NOT NULL AUTO_INCREMENT,
`date` varchar(100) CHARACTER SET utf8 NOT NULL,
`available` tinyint(1) NOT NULL DEFAULT '1',
`pending` tinyint(1) NOT NULL DEFAULT '0',
`confirmed` tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
答案 0 :(得分:0)
你做错了。
使您的待定字段不是布尔值,而是使用到期时间值的日期时间。然后在您的选择查询中,只需将该值与当前时间进行比较。而不是
SELECT * FROM appointments WHERE pending = 1
只是做到了
SELECT * FROM appointments WHERE pending < NOW()
这个解决方案更简单,更灵活