2011-07-05 9 views
1

작동하지 않는 PDO 문이 있습니다. 기본적으로 1 테이블에서 "대기 중"값을 업데이트하고 동일한 행을 선택하여 다른 테이블에 삽입하려고합니다. PDO 쿼리가 작동하지 않습니다.

$statement = $db->prepare("UPDATE waiting SET wait = :status WHERE id = :id"); 
$statement->bindValue(':status', 0); 
$statement->bindParam(':id', $id); 
$statement->execute(); 
$statement = $db->prepare("INSERT INTO approved (fname, lname, student_id, email, type) (SELECT fname, lname, student_id, email, type FROM waiting WHERE id = :id)"); 
$statement->bindParam(':id', $id); 
$statement->execute(); 

나는 또한 내가 다른 질문을하기 전에 null로 $statement 설정을 시도했지만 문제가 해결되지 않은 중 하나

$statement = $db->prepare("UPDATE waiting SET wait = :status WHERE id = :id"); 
$statement->bindValue(':status', 0); 
$statement->bindParam(':id', $id); 
$statement->execute(); 
$statement = null; 
$statement = $db->prepare("INSERT INTO approved (fname, lname, student_id, email, type) (SELECT fname, lname, student_id, email, type FROM waiting WHERE id = :id)"); 
$statement->bindParam(':id', $id); 
$statement->execute(); 

이 작동하지 않는 이유는 어떤 아이디어?

+4

오류 메시지가 있습니까? – Wabbitseason

+0

"작동하지 않음"을 정의하십시오. 두 쿼리가 제대로 실행되지 않았습니까? '$ statement-> errorInfo()'에서 오류 메시지를 받습니까? –

+0

귀하의 [INSERT-Query (MySQL)] (http://dev.mysql.com/doc/refman/5.1/en/insert.html)가 잘못되었습니다 : INSERT INTO approved (...) ** VALUES ** (...)' – Saxoier

답변

1

삽입 쿼리가 구문 오류입니다. 선택 주위에서 브래킷을 제거하면 작동합니다 :

INSERT INTO approved (fname, lname, student_id, email, type) 
SELECT fname, lname, student_id, email, type FROM waiting WHERE id = :id 
+0

고마워,이 트릭을 할 것 같았다! – Aaron

관련 문제