php
  • mysql
  • 2009-07-15 7 views 0 likes 
    0

    PHP를 통해 qotwVote1a 테이블의 Vote1a 필드를 업데이트하는 데 문제가 있습니다. 코드를 살펴보고 여기에서 내가 뭘 잘못하고 있는지 말해 줄 수 있겠습니까? 내가 오류가 발생했습니다이 코드를 사용하여PHP에서 UPDATE 명령 사용시 문제

    $result = mysql_query("SELECT * FROM qotwVote1a WHERE QuestionId='".$questionId."' AND MemberId='".$id."'"); 
    
        while($row = mysql_fetch_array($result)) 
        { 
         $originalVote=$row['Vote1a']; 
         $newVote=$originalVote + $vote; 
         //echo ($newVote); 
        } 
    
    $sql = <<<END 
    UPDATE qotwVote1a 
    SET Vote1a = '$newVote', 
    WHERE QuestionId = '$questionId' AND MemberId = '$id' 
    END; 
    
    mysql_query($sql); 
    if (mysql_error()) { 
        die("Error executing query '$sql': " . mysql_error()); 
    } 
    

    :

    "Error executing query 'UPDATE qotwVote1a SET Vote1a = '2', WHERE QuestionId = '57' AND MemberId = 'zee'': You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE QuestionId = '57' AND MemberId = 'zee'' at line 3"

    감사 Zeeshan

    답변

    5

    당신은 $newVote 후 쉼표가 있습니다. 그것을 제거하면 복숭아 예민하게됩니다.

    또한 숫자를 큰 따옴표로 묶을 필요가 없으며 열이 정수 또는 부동 소수점 유형 인 경우에는 입력하지 않아도됩니다. 그렇게하면 어쨌든 숫자로 변환되기 때문에 큰 문제는 아닙니다.

    UPDATE qotwVote1a 
    SET Vote1a = '$newVote' 
    WHERE QuestionId = '$questionId' AND MemberId = '$id' 
    
    +0

    감사합니다. 이제 작동합니다. –

    0

    SET 절 뒤에있는 MySQL 쿼리에는 쉼표가 있습니다. 따라서 이것을 시도하십시오 :

    $sql = <<<END 
    UPDATE qotwVote1a 
    SET Vote1a = '$newVote' 
    WHERE QuestionId = '$questionId' AND MemberId = '$id' 
    END; 
    
    0

    제공된 쿼리가 오류를 제공하는 쿼리가 아니므로 코드가 누락 된 것 같습니다. 쿼리의 문제는 "Vote1a = '2'"문 다음에 쉼표로 추가됩니다.

    관련 문제