MySQL error: 1064



我有以下PHP代码:

try{
    $stmt = $db->prepare('SELECT nume,prenume FROM candidati');
    $stmt->execute();
    while($row = $stmt->fetch(PDO::FETCH_OBJ)){
        $aux = $row->nume.' '.$row->prenume;
        $st = $db->prepare('SELECT COUNT(id) AS total FROM votanti WHERE consiliul_local=?');
        $st->execute(array($aux));
        while($r = $st->fetch(PDO::FETCH_OBJ)){
            $s = $db->prepare("INSERT INTO rezultate SET obtinute=:o WHERE nume=:n AND prenume=:p");
            $s->bindParam(':o',$r->total,PDO::PARAM_INT);
            $s->bindParam(':n',$row->nume,PDO::PARAM_STR);
            $s->bindParam(':p',$row->prenume,PDO::PARAM_STR);
            $s->execute();
        }
    }
} catch(PDOException $e){
    echo $e->getMessage();
}

和以下类:

class DB{
    public static function connect($engine,$host,$user,$pass,$name){
        try{
            $dbh = new PDO("$engine:host=$host;dbname=$name;charset=utf8",$user,$pass);
            $dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
            $dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES,false);
            return $dbh;
        } catch(PDOException $e){
            echo $e->getMessage();
        }
    }
}

但是当我执行第一件代码时,它会发送此错误消息:

sqlstate [42000]:语法错误或访问违规:1064您的SQL语法中有错误;检查与您的MySQL Server版本相对应的手册,以了解要在nume = where =的正确语法?和prenume =?'在第1行

您能给我一个有关如何解决这个问题的提示吗?谢谢!

INSERT语句没有WHERE子句。您需要使用UPDATE

$s = $db->prepare("UPDATE rezultate SET obtinute=:o WHERE nume=:n AND prenume=:p");

最新更新