看似正确的mysql抛出错误

时间:2014-04-04 21:11:19

标签: php mysql sql

我知道这对其他人没有帮助,我尽量避免在这里发布这样的问题......但我不知所措。

我看了看,似乎无法弄清楚为什么我收到这个mysql错误:

  

您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在第1行的“WHERE parser_id = 6”附近使用正确的语法

以下是我如何调用该函数...

$fields = array('rel_table' => $table);
$result = $this->_db->update('parser', $file_id, $fields);

这是函数......

public function update($table, $id, $fields) {
    $sql = "UPDATE $table SET ";
    foreach ($fields as $name => $data) {
        $sql .= "$name='$data',";
    }
    rtrim($sql, ",");
    $sql .= " WHERE $table"."_id = $id";

    $success = $this->con->query($sql);

    if ($success) {
        $this->error = "Inserted";
    } else {
        $this->error = "Not Inserted<br/>" . $this->con->error;
    }

}

不确定我做错了什么。我已经尝试将$ id括在'$ id'中...我明白整数不应该需要那些。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:4)

您需要指定rtrim的结果:

$sql = rtrim($sql, ",");