1

我有一个 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。为什么这个脚本不起作用?

4

4 回答 4

2

DELETE 不接受列参数

去除 *

于 2013-09-30T01:18:12.543 回答
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'");
于 2013-09-30T01:11:54.430 回答
1
mysql_query("DELETE FROM users WHERE username='$user[username]' AND rank=0");

DELETE 操作中没有 * 或任何列,因为您正在删除整行。

于 2013-09-30T01:22:48.803 回答
1

您确定 users 表有一条 rank == 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'

如果有结果,那么您的 PHP 在执行 mysql_query 时可能会抛出错误。尝试在 mysql_query 之后插入此代码

if (mysql_error()) {
    die(mysql_error());
}
于 2013-09-30T02:53:56.110 回答