我有一个PHP聊天脚本,当用户注销并从数据库中删除它时,它会调用MySQL数据库。
我的脚本是:
if(isset($_GET['logout'])){
mysql_query("DELETE FROM users WHERE username='" .$user['username']. "' AND rank='0'");
header("Location: login_mini.php?logout=1");
}
我想要做的是删除用户,如果他们离开时排名为0。为什么这个脚本不起作用?
答案 0 :(得分:2)
DELETE不接受列参数
删除*
答案 1 :(得分:1)
MYSQL删除示例的语法:
DELETE FROM somelog WHERE user = 'jcole'
ORDER BY timestamp_column LIMIT 1;
所以你的查询错了,这就是它没有运行的原因:
应该是
//without * and add quotes in your $user['username']
mysql_query("DELETE FROM users WHERE username=" .$user['username']. " AND rank='0'");
答案 2 :(得分:1)
mysql_query("DELETE FROM users WHERE username='$user[username]' AND rank=0");
DELETE操作中没有*或任何列,因为您要删除整行。
答案 3 :(得分:1)
您确定用户表的记录等级为== 0吗?
检查SELECT COUNT(*)
FROM users
WHERE rank='0'
然后如果有变量$ user ['username']则检查它是否有值。
var_dump($user);
然后如果两者都有值,那么尝试在你的mysql上手动执行它
SELECT *
FROM users
WHERE username = #the value of the username
AND rank = '0'
如果有结果,那么在执行mysql_query时你的PHP可能会抛出错误。尝试在mysql_query
之后插入此代码if (mysql_error()) {
die(mysql_error());
}