MYSQL更新无法使用php变量id

时间:2012-12-06 11:41:56

标签: php mysql

我坚持使用简单的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变量,它工作正常。

任何帮助将不胜感激 谢谢!

2 个答案:

答案 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'];将有效。