$createDate = mktime(0,0,0,10,28,date("Y"));
$selectedDate = date('d-m-Y', ($createDate));
$active = 0;
$sql = "UPDATE Session SET Active = ? WHERE SessionDate <= ?";
$update = $mysqli->prepare($sql);
$update->bind_param("is", $active, $selectedDate);
$update->execute();
我认为我没有正确设置上述代码,因为我正在运行一项 CRON 作业,我曾声明每年 10 月 28 日(今天),它将“活动”字段设置为 0。
问题是它将我数据库中所有行的活动字段设置为“0”,即使它是在今年 10 月 28 日之后。
以下是假设发生的事情:
现在是 2012 年,所以当它变成 10 月 28 日(现在是现在)时,任何“SessionDate”在此日期之前的考试都应该有一个“活动”值“0”,其他考试仍然有一个“活动” “1”的值。
CRON 将在明年 10 月 28 日之前完成它的工作,这次显然是 2013 年。同样的规则适用于任何“SessionDate”在此日期之前的考试,“Active”值为“ 0”,其他考试仍然具有“1”的“活动”值。
然后,CRON 将在下一年的 10 月 28 日之前完成它的工作,这次显然是 2014 年。同样的规则适用于任何“SessionDate”在此日期之前的考试,“Active”值为“0”,其他考试仍然具有“1”的“活动”值。
等等....
那么,当 CRON 执行此操作时,为什么我的所有数据库行的“活动”字段都设置为 0?