2011-10-10 95 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