2017-09-23 16 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

関連する問題