为什么这个 PHP 代码(mysql_query 删除用户名所在的行$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 不应该以您正在使用的形式做任何事情,除了将查询发送到服务器。
$result = mysql_query (...);
// use the result if any.
if (!$result) {
die('Invalid query: ' . mysql_error());
}
// check the error that you might have
你需要加上$user
引号
mysql_query("DELETE FROM xraydeath WHERE user = '".$user."';");
即使没有删除行,DELETE 也会成功,因此要获取实际删除的行数,请使用mysql_affected_rows()
$x = mysql_query("..");
echo "There were ".mysql_affected_rows()." rows affected";
**尽量不要使用mysql_*
切换到 PDO 来代替。
假设xraydeath.user
是字符类型,值需要用引号括起来。如果$user
尚未包含引号,请尝试:
mysql_query("DELETE FROM xraydeath WHERE user = '$user'");
对于踢球,请尝试设置$user = "' OR '1'='1";
!(阅读 SQL 注入攻击,你真的应该改用 mysqli!)
该表也可能没有匹配的行,因此不会删除任何内容。如果不知道您分配的内容$user
和您的数据,就无法知道。
试试这个:
mysql_query("DELETE FROM xraydeath WHERE user = '".$user."'");
或者
mysql_query("DELETE FROM xraydeath WHERE user = '".$user."';");
在 mysql 中使用的每个 php 变量,将它们放入 '".$variable."'
首先:不推荐使用mysql。你应该使用mysqli。第二:用户是什么样的类型?if is int : (面向对象的风格)
mysqli::query("DELETE (what you want) FROM xraydeath WHERE `user` = '".$user."'");
如果是 varchar(字符串):
mysqli::query("DELETE (what you want) FROM xraydeath WHERE `user` LIKE '".$user."'");
或(程序样式)
mysqli_query((your mysqli link), "DELETE (what you want) FROM xraydeath WHERE `user` LIKE/= '".$user."'");
希望能帮助到你