2011-10-10 94 views
0

我不斷收到一條消息說數據庫查詢失敗::你的SQL語法錯誤;檢查與您的MySQL服務器版本相對應的手冊,在第1行'WHERE id = 2'附近使用正確的語法,我似乎無法找到原因。我的用戶接入方法工作正常,但不管是什麼原因,我不能讓過去這個錯誤此更新方法:數據庫查詢失敗

public function update(){ 
    global $database; 

    $sql = "UPDATE users SET "; 
    $sql .= "username='" . $database->escape_value($this->username) ."', "; 
    $sql .= "password='" . $database->escape_value($this->password) ."', "; 
    $sql .= "first_name='" . $database->escape_value($this->first_name) ."', "; 
    $sql .= "last_name='" . $database->escape_value($this->last_name) ."', "; 
    $sql .= "WHERE id=" . $database->escape_value($this->id); 
    $database->query($sql); 
    if($database->affected_rows() == 1){ 
    $message = "success"; 

    }else{ 
    $message = "no " . mysql_error(); 
    } 
    return $message; 
} 
+1

該方法產生的失敗SQL是什麼? –

+0

請提供代碼實際生成的內容(當然要進行消毒處理)。 –

+0

至少在最初的時候,我對此行持懷疑態度:'WHERE id =「'。''this'> id''附近的位置? –

回答

6

WHERE子句前最後一個逗號是錯誤的,變化:

$sql .= "last_name='" . $database->escape_value($this->last_name) ."', "; 

$sql .= "last_name='" . $database->escape_value($this->last_name) ."' "; 
+0

非常感謝馬克,那就是訣竅。 – Scott