2013-11-24 2 views
0

DB에 값을 삽입 할 때 준비된 문을 사용하려고합니다.준비된 문이 제대로 작동하지 않음

테이블의 값은 다음과 같습니다. first_name, : second_name, : third_name. 여기서 뭐가 잘못 됐니?

감사

+0

http://php.net/manual/en/pdo.prepared-statements.php - 예제를 따라하면 해결됩니다 코드 – Artur

+1

은 준비된 명령문에서 자리 표시자를 따옴표로 묶을 필요가 없습니다. –

+0

예 감사합니다 teresko. 그것은 작동했다 – user3026704

답변

0

준비된 문은 그렇지 않은 코드입니다, 잘 작동.

변경

$this->db->insertQuery("INSERT INTO students (id,first_name,second_name,last_name,course) VALUES ('',':first_name',':second_name',':last_name',':course')",array(':first_name'=>$this->first_name,':second_name'=>$this->second_name,':last_name'=>$this->last_name,':course'=>$this->course)); 

공지

$this->db->insertQuery("INSERT INTO students (id,first_name,second_name,last_name,course) VALUES ('',':first_name',':second_name',':last_name',':course')",array('first_name'=>$this->first_name,'second_name'=>$this->second_name,'last_name'=>$this->last_name,'course'=>$this->course)); 

에 S 값의 배열에서 누락되는 : '통과한다.

+0

흠 .. 내가 말했듯이,하지만 여전히 그것의 삽입 : first_name, : second_name ... – user3026704

+0

당신은 [매개 변수 바인딩] (http://php.net/manual/en/pdo.prepared-statements .php) 어디서나? – vascowhite

+0

아니요. 예제는 $ stmt-> bindParam (': name', $ name);입니다. $ name은 어디에서 가져와야합니까? – user3026704

0

":"을 배열 키에서 제거하십시오. 쿼리

0

이 시도 할 수, 나는 제거한 ID 열

$this->db->insertQuery("INSERT INTO students (first_name,second_name,last_name, course)  
VALUES (':first_name',':second_name',':last_name',':course')", 
array('first_name'=>$this->first_name,'second_name'=>$this->second_name, 
'last_name'=>$this->last_name,'course'=>$this->course)); 
관련 문제