2014-05-09 2 views
0

PDO에서 이상한 오류가 발생했습니다 : { "text": SQLSTATE [HY093] : 잘못된 매개 변수 번호 : 바인딩 된 변수의 수가 토큰의 수와 일치하지 않습니다. }PDO SQL 쿼리의 매개 변수가 잘못되었습니다.

누군가이 나를 도울 수 있다면이 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

'id : idfeed'는 무엇을 의미합니까? – tadman

+5

'id'와': idfeed' 사이에'= '연산자가 누락되지 않았습니까? – Mureinik

답변

3

$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() .'}}'; 
    } 
+0

고마워요. 고마워요, 고맙습니다. !!!! – user222914

관련 문제