我知道这可能很简单,我只是遗漏了一些东西,但我似乎无法解决这个问题。
我无法在UPDATE语句中获取变量。如果我输入user_id它就会起作用,所以我不会将变量关闭。
$query = "SELECT accounts.username, email_activate.email, accounts.user_id FROM accounts INNER JOIN email_activate ON accounts.user_id = email_activate.user_id WHERE dt_welcome = '0000-00-00 00:00:00' AND dt_start <= DATE_SUB(NOW(), INTERVAL 3 DAY)";
$result = mysql_query($query) or die(mysql_error());
while ($row = mysql_fetch_array($result)) {
$message = "Hello <b>".$row['username']."</b>, <br/><br/>";
$to = "".$row['email']."";
$result2 = mysql_query("UPDATE email_activate SET dt_welcome = NOW() WHERE user_id = ".$row['user_id']." ");
[other mail stuff .....]
}
同样,我知道它可能很简单。
谢谢!
答案 0 :(得分:1)
为什么在一个查询中可以使用两个查询和一个循环?
UPDATE email_active ea JOIN
accounta a
ON a.user_id = ea.user_id
SET dt_welcome = NOW()
WHERE dt_welcome = '0000-00-00 00:00:00' AND
dt_start <= DATE_SUB(NOW(), INTERVAL 3 DAY);
编辑:
您的查询的问题是您需要围绕用户ID的单引号:
UPDATE email_activate
SET dt_welcome = NOW()
WHERE user_id = '".$row['user_id']."' "
当然,您应该使用mysqli_或PDO并具有参数化查询。后者会阻止你首先遇到这个问题。