为什么执行PHP mysql_查询失败
为什么这个PHP代码(mysql_查询删除用户名为为什么执行PHP mysql_查询失败,php,mysql,Php,Mysql,为什么这个PHP代码(mysql_查询删除用户名为$phpVar的行)什么都不做 mysql_query("DELETE FROM xraydeath WHERE user = $user"); 您需要在字符串周围加引号,如下所示: mysql_query("DELETE FROM xraydeath WHERE user = '$user'"); 您需要在字符串周围加引号,如下所示: mysql_query("DELETE FROM xraydeath WHERE user = '$use
$phpVar
的行)什么都不做
mysql_query("DELETE FROM xraydeath WHERE user = $user");
您需要在字符串周围加引号,如下所示:
mysql_query("DELETE FROM xraydeath WHERE user = '$user'");
您需要在字符串周围加引号,如下所示:
mysql_query("DELETE FROM xraydeath WHERE user = '$user'");
您忘记了用户周围的引号:
mysql_query("DELETE FROM xraydeath WHERE user = '$user'");
您忘记了用户周围的引号:
mysql_query("DELETE FROM xraydeath WHERE user = '$user'");
你在期待什么?它是如何失败的?Mysql_查询不应该以您正在使用的形式执行任何操作,除非将查询发送到服务器
$result = mysql_query (...);
// use the result if any.
if (!$result) {
die('Invalid query: ' . mysql_error());
}
// check the error that you might have
你在期待什么?它是如何失败的?Mysql_查询不应该以您正在使用的形式执行任何操作,除非将查询发送到服务器
$result = mysql_query (...);
// use the result if any.
if (!$result) {
die('Invalid query: ' . mysql_error());
}
// check the error that you might have
可能是因为您忘了引用
$user
参数,请进入sql查询字符串。如果该参数直接连接到用户输入,则可能会有人提交”或1=1--
,而您的整个表都会消失。这个想法被称为
注意:旧的mysql_*函数现在已被弃用,您应该避免使用它们。可能是因为您忘了引用
$user
参数,请进入sql查询字符串。如果该参数直接连接到用户输入,则可能会有人提交”或1=1--
,而您的整个表都会消失。这个想法被称为
注意:旧的mysql_*函数现在已被弃用,您应该避免使用它们。您需要将
$user
放在引号中
mysql_query("DELETE FROM xraydeath WHERE user = '".$user."';");
如果没有删除的行,删除也会成功,因此要获得实际删除的行数,请使用mysql\u impacted\u rows()
**尽量不要使用
mysql.*
切换到PDO。您需要将$user
放在引号中
mysql_query("DELETE FROM xraydeath WHERE user = '".$user."';");
如果没有删除的行,删除也会成功,因此要获得实际删除的行数,请使用mysql\u impacted\u rows()
**尽量不要使用
mysql.*
切换到PDO。假设xraydeath.user
是字符类型,值需要用引号括起来。如果$user
尚未包含引号,请尝试:
mysql_query("DELETE FROM xraydeath WHERE user = '$user'");
对于踢腿,请尝试设置$user=“”或“1”=“1”代码>!(阅读SQL注入攻击,你真的应该切换到mysqli!)
也可能该表没有匹配的行,因此不会删除任何内容。如果不知道您分配给$user
的内容和您的数据,则无法知道。假设xraydeath.user
是字符类型,则需要将值括在引号中。如果$user
尚未包含引号,请尝试:
mysql_query("DELETE FROM xraydeath WHERE user = '$user'");
对于踢腿,请尝试设置$user=“”或“1”=“1”代码>!(阅读SQL注入攻击,你真的应该切换到mysqli!)
也可能该表没有匹配的行,因此不会删除任何内容。如果不知道您分配给$user
的内容和您的数据,则无法知道。尝试以下方法:
mysql_query("DELETE FROM xraydeath WHERE user = '".$user."'");
或
将mysql中使用的每个php变量放入“.$variable”中。试试这个:
mysql_query("DELETE FROM xraydeath WHERE user = '".$user."'");
或
mysql中使用的每个php变量,都将它们放入“.$variable.”中。首先:mysql已被弃用。您应该使用mysqli。
第二:用户是什么类型的?
如果是int:
(面向对象风格)
如果是varchar(字符串):
或
(syle程序)
首先,希望它能有所帮助:mysql已被弃用。您应该使用mysqli。
第二:用户是什么类型的?
如果是int:
(面向对象风格)
如果是varchar(字符串):
或
(syle程序)
希望对您有所帮助,$user
设置为什么以及表中的数据是什么?旁注:请记住mysql_*函数是。使用他们的对手这种使用方式很容易被sql注入。使用PDO和bind参数。$user
设置为什么?表中的数据是什么?旁注:请记住mysql_*函数是。使用他们的对手这种使用方式很容易被sql注入。使用PDO和bind参数。您如何看到user
列是字符串类型?:)我看不到,但我感觉到了:)@WouterH如果$user
不是字符串,那么查询应该可以正常工作,对吧@我认为你的感情有时会伤害你;)@布万利卡:mysql服务器坏了怎么办?坏的连接字符串?少了一张桌子?缺少一列?忘了把它放在
标签之间?或者根本就没有mysql\u connect?您如何看待user
列是一种字符串类型?:)我看不到,但我感觉到了:)@WouterH如果$user
不是字符串,那么查询应该可以正常工作,对吧@我认为你的感情有时会伤害你;)@布万利卡:mysql服务器坏了怎么办?坏的连接字符串?少了一张桌子?缺少一列?忘了把它放在
标签之间?或者根本没有mysql\u connect?您正在演示如何使用mysqli
,而无需准备语句!对不起,这是一个使用mysqli的错误示例。在执行语句、mysqli\u real\u escape\u字符串或其他阻止mysqli输入的东西之前,应该验证$user。不,您不需要mysqli\u real\u escape\u字符串
,您必须使用。有了预先准备好的语句,您再也不用关心注入和转义字符串了。这有多酷?:)有趣。但是,他仍然提出了执行查询的解决方案:DEveryone试图告诉OP使用mysqli,而您给出了一个非常糟糕的示例。要么删除答案,要么采用它并使用准备好的语句并绑定$user参数。您正在演示在没有准备好语句的情况下使用mysqli
!对不起,这是一个使用mysqli的错误示例。在执行语句、mysqli\u real\u escape\u字符串或其他阻止mysqli输入的东西之前,应该验证$user。不,您不需要mysqli\u real\u escape\u字符串
,您必须使用。有了事先准备好的声明,你永远不必