我有一个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。为什么这个脚本不起作用?
DELETE 不接受列参数
删除 *
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'");
mysql_query("DELETE FROM users WHERE username='$user[username]' AND rank=0");
DELETE 操作中没有 * 或任何列,因为您要删除整行。
您确定用户表具有排名 == 0 的记录吗?检查方式
SELECT COUNT(*)
FROM users
WHERE rank='0'
然后,如果有,请检查您的变量$user['用户名']是否有值。
var_dump($user);
然后,如果两者都有价值,则尝试在您的MySQL上手动执行此操作
SELECT *
FROM users
WHERE username = #the value of the username
AND rank = '0'
如果有结果,那么也许您的 PHP 在执行mysql_query时抛出错误。 尝试在mysql_query之后插入此代码
if (mysql_error()) {
die(mysql_error());
}