簡體   English   中英

這個MySQL查詢有什么問題?

[英]What is wrong with this MySQL Query?

現在是上午12:30,我連續編碼了9個小時。 我真的需要完成這個項目,但MySQL正在搞亂我的截止日期。 你可以為我檢查這個片段,看看你是否能找出問題所在?

PHP / MySQL查詢

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

繼續返回以下錯誤...

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.')); }

受影響的功能

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;
}

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); }
}

我認為可能 是你的DELETE語句導致錯誤。

DELETE之后刪除* ,它應該沒問題。

試試這個:

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

檢查您是否使用'字符或'字符(最后一個是重音)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM