值仍然插入,即使查询包含在if语句中,这应该阻止它这样做


Value still inserting, even though query encased in if statement which should stop it from doing so?

我真的不知道这是怎么回事,我已经绞尽脑汁想了好长时间了;

我有变量$overflow = $_POST['overflow'];,然后是以下代码:

if($overflow != "" || $overflow != "Overflow link"){
    $query = "DELETE FROM links WHERE overflow='YES'";
    $result = mysql_query($query) or die(mysql_error());
    $query = "INSERT INTO links (link, overflow) VALUES ('$overflow','YES') ON DUPLICATE KEY UPDATE overflow=VALUES(overflow)";
    $result = mysql_query($query) or die(mysql_error());
}

这个想法是,如果$overflow是空的或持有默认值,它不被插入,但如果它是一个有效值,它已经存在的条目被删除(因为我不能使列唯一),它被重新插入。

有人知道为什么它插入任何值吗?

任何帮助都将非常感激!

"If not empty or not some value".

不能同时为空 "some value",所以这个条件总是为真。你要找的是:

if ($overflow != "" && $overflow != "Overflow link")
if(!empty($overflow) && $overflow != "Overflow link"){
    $query = "DELETE FROM links WHERE overflow='YES'";
    $result = mysql_query($query) or die(mysql_error());
    $query = "INSERT INTO links (link, overflow) VALUES ('$overflow','YES') ON DUPLICATE KEY UPDATE overflow=VALUES(overflow)";
    $result = mysql_query($query) or die(mysql_error());
}