PHP MySQL 删除值等于的地方


PHP MySQL delete where values are equal to

我有一个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());
}