Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 值仍然在插入,即使查询被封装在if语句中,这应该阻止它这样做吗?_Php_Mysql - Fatal编程技术网

Php 值仍然在插入,即使查询被封装在if语句中,这应该阻止它这样做吗?

Php 值仍然在插入,即使查询被封装在if语句中,这应该阻止它这样做吗?,php,mysql,Php,Mysql,我真的不知道这里发生了什么,我绞尽脑汁想弄清楚这件事已经好多年了 我有一个变量$overflow=$\u POST['overflow']然后输入以下代码: if($overflow != "" || $overflow != "Overflow link"){ $query = "DELETE FROM links WHERE overflow='YES'"; $result = mysql_query($query) or die(mysql_error()); $q

我真的不知道这里发生了什么,我绞尽脑汁想弄清楚这件事已经好多年了

我有一个变量
$overflow=$\u 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 ($overflow != "" && $overflow != "Overflow link")
“如果不是空的或不是某个值”

它不能同时为空和“某个值”,所以这个条件总是正确的。您正在寻找:

if ($overflow != "" && $overflow != "Overflow link")

这里存在严重的SQL注入安全漏洞。当用户发布
overflow=”时会发生什么;删除表链接--?它插入表单字段
name=overflow
中发布的值,因此我认为没有必要这样做,因为它本身验证了它正在被设置,不是吗如果不能使其唯一,则意味着它具有重复的值。在这种情况下,插入新行时要替换哪个值?@cdhowie:这是针对私人客户的,对于一个非常小的地下项目,他将是唯一可以访问脚本的人(基本安全措施,除非会话经过验证,否则无法发布)@Pixelatron:仅仅因为只有一两个人可以访问该网站,并不意味着就可以原谅草率的编码PYou在此处存在严重的SQL注入安全漏洞。当用户发布
overflow=”时会发生什么;删除表链接--?它插入表单字段
name=overflow
中发布的值,因此我认为没有必要这样做,因为它本身验证了它正在被设置,不是吗如果不能使其唯一,则意味着它具有重复的值。在这种情况下,插入新行时要替换哪个值?@cdhowie:这是针对私人客户的,对于一个非常小的地下项目,他将是唯一可以访问脚本的人(基本安全措施,除非会话经过验证,否则无法发布)@Pixelatron:仅仅因为只有一两个人可以访问该网站,并不意味着就可以原谅草率的编码Pempty()在这里是无用的,只是
$overflow
是无用的enough@Col.炮弹碎片刚刚经过行动组的声明。。。“如果$overflow为空或保留默认值,则不会插入”。也许我把它理解为字面意思。empty()在这里是无用的,只是
$overflow
是无用的enough@Col.炮弹碎片刚刚经过行动组的声明。。。“如果$overflow为空或保留默认值,则不会插入”。也许我把它当成了真的。