为什么这段代码不能正常工作? 当我将其中一个条目,昵称或电子邮件加倍时, 它会从双重新条目中删除。
但如果昵称和电子邮件都相同, 它只是不会删除最后一个条目,而只是插入一个重复的行。
注意:我每行只有一个自动递增的值,没有时间戳,所以我不能简单地删除最新的条目,我必须确保删除最后一个插入的条目。
编辑:我可以假设我只能使用上面的if语句,但是如果我愿意的话,两个条目都会被删除(如果我拿出了AND - 部分程序)......
我现在的代码(PRIMARY KEY是KNR):
if(($doubleEmail || $doubleNickname) && !($doubleEmail && $doubleNickname))
{
mysql_query("DELETE FROM ".$sql['table']
. " WHERE ".$sql['email']."='".mysql_real_escape_string($email)
. "' AND ".$sql['nick']."='".mysql_real_escape_string($nickName)."'");
echo "double entry";
}
elseif($doubleEmail && $doubleNickname)
{
mysql_query("DELETE FROM ".$sql['table']." WHERE KNR >
( ( SELECT MAX( KNR )-1 FROM ".$sql['table']."))");
echo "double entry";
}
答案 0 :(得分:0)
我建议使用
DELETE FROM `YOUR_TABLE` ORDER BY `YOUR_PRIMARY_KEY` DESC LIMIT 1
您的查询生成1093 sql错误。看到类似的问题:Deleting a row based on the max id
(旁注:总是逃避查询中的每个值和每个值,即使它们不是动态的,也来自配置文件。)