这个MySQL查询有什么问题?

Kyl*_*oss 11 php mysql database mysql-error-1064

现在是上午12:30,我已经连续编码了9个小时.我真的需要完成这个项目,但MySQL正在搞乱我的截止日期.你可以为我检查这个片段,看看你是否能找出问题所在?

PHP/MySQL查询

$q = $this->db->query("SELECT * FROM bans WHERE ip='".$ip."'");
Run Code Online (Sandbox Code Playgroud)

继续返回以下错误...

MYSQL错误[2010年10月6日晚上11:31 CDT]
您的SQL语法有错误; 查看与您的MySQL服务器版本对应的手册,以便在第1行(1064)'*FROM禁止WHERE ip ='206.53.90.231'附近使用正确的语法

我没有看到查询有任何问题.我甚至尝试过包含变量$ ip的不同方法,但没有用.

编辑:
只是在这里添加,我的数据库中的IP列是一个varchar(255).

编辑2:
这是受影响的整个代码.请记住,这一切都在课堂上.如果我遗失了什么,请告诉我.

来自另一个函数的行

if($this->isBanned($_SERVER['REMOTE_ADDR'])===true) { return json_encode(array('error'=>'You are banned from this ShoutBox.')); }
Run Code Online (Sandbox Code Playgroud)

受影响的功能

function isBanned($ip) {
    $q = $this->db->query("SELECT * FROM bans WHERE ip='".$ip."'"); $num = $this->db->affected_rows;
    if($num>0) { $row = $this->db->fetch_array($q); if(($row['expires'] < time()) && ($row['expires'] !== 0)) { $this->unbanUser($ip,'internal'); return false; } return true; } return false;
}
Run Code Online (Sandbox Code Playgroud)

unbanUser功能

function unbanUser($ip,$t='box') {
    $q = $this->db->query("SELECT * FROM bans WHERE ip='".$ip."'"); $num = $this->db->affected_rows; if($num>0) { $q = $this->db->query("DELETE * FROM bans WHERE ip='".$ip."'"); 
    return (($t=='box') ? json_encode(array('status'=>'removed')) : true); } else { return (($t=='box') ? json_encode(array('error'=>'Unable to locate the user.')) : true); }
}
Run Code Online (Sandbox Code Playgroud)

Jar*_*ott 7

我想可能是你的DELETE陈述导致错误.

删除*DELETE,它应该没问题.

  • 这肯定是导致问题的"DELETE". (2认同)
  • 这就是故事中的结! (2认同)