2017-09-23 1 views
1

PHP PDO를 사용하여 데이터베이스에 데이터를 삽입하는 동적 함수를 생성 중입니다.왜 바인딩 된 변수 수가 토큰 수와 일치하지 않습니다 오류 메시지가 표시됩니까?

다음은 Database 클래스의 함수입니다.

public function insert ($table, $feilds = array()) { 

    $key = array_keys($feilds); 
    $column = implode(',', $key); 

    $ques = array(); 

    foreach ($feilds as $value) { 
     $ques[] = " ?"; 
    } 

    $ques = implode(', ', $ques); 

    $stmt = $this->_pdo->prepare("INSERT INTO $table($column) VALUES ($ques)"); 

    $x=1;  
    foreach ($feilds as $key => $value) { 
     $stmt->bindParam($x, $var); 
     $var = $value; 
     $stmt->execute();   
     $x++; 
    }  
} 

나는이 같은 데이터를 삽입하고 :

$data = array(
    'b_title' => 'My blog title', 
    'b_des'  => 'My blog description', 
); 
$database->insert('blog', $data); 

을하지만이 쿼리를 실행할 때 그것은 말하는

잘못된 매개 변수 번호 : 바운드 변수의 수는 토큰의 수와 일치하지 않습니다

바운드 변수와 토큰이 일치하지 않습니다! 어떻게 해결할 수 있습니까?

감사합니다.

답변

0

$stmt->execute(); foreach는

+0

OH 외부에 가야한다, 나는 –

+0

:(장님이 모든 사람에게 발생 : P – thelmuxkriovar

관련 문제