Php SQL错误106442000您的SQL语法有错误,但无法发现问题

Php SQL错误106442000您的SQL语法有错误,但无法发现问题,php,sql,Php,Sql,已解决:一个参数未传递给函数 我正在尝试使用PHP中的PDO更新数据库中的记录。 执行查询时,我收到一个错误1604 [420001064,“您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以了解在第1行“1,其中id=175”附近使用的正确语法”] 查询是从API类中的新方法执行的 public function updateRaceTeamOrder($forRace, $position){ $race_set =""; if ($forRace==

已解决:一个参数未传递给函数


我正在尝试使用PHP中的PDO更新数据库中的记录。 执行查询时,我收到一个错误1604

[420001064,“您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以了解在第1行“1,其中id=175”附近使用的正确语法”]

查询是从API类中的新方法执行的

public function updateRaceTeamOrder($forRace, $position){

    $race_set ="";

    if ($forRace=="GS") {
        $race_set = "raceGS_position";
    }
    if ($forRace=="SB") {
        $race_set = "raceSB_position";
    }
    if ($forRace=="XC") {
        $race_set = "raceXC_position";
    }

    $query = "UPDATE " . $this->table_name . "SET {$race_set}=:raceTeamPosition WHERE id = :id";

     $stmt = $this->conn->prepare($query);

    // sanitize


    $this->id=htmlspecialchars(strip_tags($this->id));
    $position=htmlspecialchars(strip_tags($position));

    if (!is_int($this->id)) {
        $this->id = intval($this->id);
    }

    if (!is_int($position)) {
        $position = intval($position);
    }

    $stmt->bindParam(':raceTeamPosition', $position, PDO::PARAM_INT);
    $stmt->bindParam(':id', $this->id, PDO::PARAM_INT);

    // execute the query
    if($stmt->execute()){ 
        return true;
    }

    return $stmt->errorInfo();


尝试回显您的查询以查看其包含的内容。答案应该很明显,关键字周围没有空格。您在
SET
之前缺少一个空格。如果缺少空格,则为true,但没有解决问题。回显时,查询会显示什么结果?
$race_set = "default_race_set";     
if ($forRace=="GS") {
        $race_set = "raceGS_position";
    }
    if ($forRace=="SB") {
        $race_set = "raceSB_position";
    }
    if ($forRace=="XC") {
        $race_set = "raceXC_position";
    }
if ($forRace=="GS") {
    $race_set = "raceGS_position";
}elseif ($forRace=="SB") {
    $race_set = "raceSB_position";
}elseif ($forRace=="XC") {
     $race_set = "raceXC_position";
}else{
     die("err");
}