我正在创建一个动态函数,以使用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);


但是当我运行这个查询时


  无效的参数编号:绑定变量的数量不匹配
  代币数量


我不明白绑定变量和令牌在哪里不匹配!我该如何解决?

谢谢。

最佳答案

$stmt->execute();应该超出foreach

10-06 00:16