我坚持使用简单的MYSQL UPDATE语句;从数据库中选择一个ID,然后更新记录WHERE ID = $ ID。代码:
$searchDates = ('SELECT * FROM booking_event WHERE subject != "Closed" AND is_reminded IS NULL AND DATE_ADD(NOW(), INTERVAL 2 DAY) >= `starting_date_time` AND NOW() <= `starting_date_time`');
$result = mysql_query($searchDates) or die (mysql_error());
while ($row = mysql_fetch_array($result)) {
$id = $row['event_id'];
mysql_query("UPDATE booking_event SET is_reminded = 1 WHERE event_id = '$id'") or die (mysql_error());
}
由于某种原因,它不会使用从数据库中选择的ID进行更新 - 我尝试使用testID变量,它工作正常。
任何帮助将不胜感激 谢谢!
答案 0 :(得分:2)
您可以在一个查询中执行此操作:
UPDATE booking_event b1
INNER JOIN
(
SELECT *
FROM booking_event
WHERE subject != "Closed"
AND is_reminded IS NULL
AND DATE_ADD(NOW(), INTERVAL 2 DAY) >= starting_date_time
AND NOW() <= starting_date_time
) b2
SET t1.is_reminded = 1 WHERE b1.event_id = b2.event_id
答案 1 :(得分:1)
PHP变量区分大小写。很可能MYSQL中的列名称类似于Event_Id
或任何其他大小写。使用SELECT *
会返回实际名称,因此要获取它,您需要$id = $row['Event_Id']
;
最好确保没有套管问题,请使用:
SELECT event_id FROM ....
然后$id = $row['event_id'];
将有效。