我有两个mysql表sent
和queue
。我将成员插入queue
表。但是我不想再次插入相同的成员 - 如果它们在sent
表中。他们已经收到了邀请。
如何检查插入queue
的成员在sent
中是否不存在?
if (insertEmail($email)) {
echo "<span class='success'>Successfully added " . $email . " to the queue</span><br/>";
} else {
echo "<span class='fail'>Error we already sent " . $email . " an invitation email.</span><br/>";
}
function insertEmail($email)
{
mysql_query("INSERT INTO queue (email) SELECT `$email` FROM dual WHERE `$email` NOT IN (SELECT `email` FROM `sent`)");
}
Quassnoi帮我查询,但我觉得我做错了。当我尝试将电子邮件插入队列时,我总是得到Unknown column '[removed]@gmail.com' in 'field list'
答案 0 :(得分:3)
也许您无法更改表格,但如果这样做,您是否考虑在队列表上创建状态列并完全删除已发送的表?
最简单的版本是:
email status
me@email.com queued
someone@email.com queued
another@email.com sent
然后,只要您的队列处理器运行,insertEmail就会变为updateQueue($ email),您的查询是:
mysql_query('Update queue Set `status' = 'sent' Where email = '$email');
要检索尚未发送电子邮件的任何人:
mysql_query('Select email From queue Where `status' = 'queued');