PDO SQL查询中的参数无效

时间:2014-05-09 18:03:11

标签: php mysql syntax-error

我在PDO中遇到一个奇怪的错误: {“error”:{“text”:SQLSTATE [HY093]:参数号无效:绑定变量数与令牌数不匹配}}

我试过这个sql查询而我没有找到,如果有人可以帮助我; 我的代码:

$sql = "UPDATE feeds SET status=:statuschosen WHERE idUser=:id AND id:idfeed";
    try {
        $db = getConnection();
        $stmt = $db->prepare($sql);  
        $stmt->bindParam("statuschosen", $post->statuschosen);
        $stmt->bindParam("idfeed", $post->idfeed);
        $stmt->bindParam("id", $id);
        $stmt->execute();
        $db = null;
        echo json_encode($post); 
    } catch(PDOException $e) {
        echo '{"error":{"text":'. $e->getMessage() .'}}'; 
    }   

我的桌子有这样的结构:

id  URL idUser  status

感谢您的帮助!!!

1 个答案:

答案 0 :(得分:3)

您的$sql字符串中缺少等号。此外,在绑定params时,您使用了错误的占位符,请参阅下文:

$sql = "UPDATE feeds SET status=:statuschosen WHERE idUser=:id AND id=:idfeed";
    try {
        $db = getConnection();
        $stmt = $db->prepare($sql);  
        $stmt->bindParam(":statuschosen", $post->statuschosen);
        $stmt->bindParam(":idfeed", $post->idfeed);
        $stmt->bindParam(":id", $id);
        $stmt->execute();
        $db = null;
        echo json_encode($post); 
    } catch(PDOException $e) {
        echo '{"error":{"text":'. $e->getMessage() .'}}'; 
    }