私は数時間遊んでいて、これを整理しようとしていますが、ひびが入りにくいように見えます。
単一の配列挿入を行うことができます
$person = array('name' => 'Wendy', 'age' => '32');
しかし、私がこのような複数が必要な場合:
$person = array(array('name'=>'Dan', 'age'=>'30'), array('name' => 'John', 'age' => '25'), array('name' => 'Wendy', 'age' => '32'));
動いていない?どんな助けでもいただければ幸いです。
複数挿入の場合:
public function insertPdo($table, $data){
try{
if (!is_array($data) || !count($data)) return false;
$bind = ':' . implode(', :', array_keys($data));
$sql = 'INSERT INTO ' . $table . ' (' . implode(', ',array_keys($data)) . ') ' . 'values (' . $bind . ')';
$sth = $this->__dbh->prepare($sql);
$result = $sth->execute($data);
}
catch(PDOException $e){
echo $e->getMessage();
}
}
シングル挿入の場合
$person = array('name'=>'Dan', 'age'=>'30');
$db->insertPdo('test_pdo',$person);
// For Multi Insertion, I'm trying to use this in above function
foreach ($data as $row) {
$result = $sth->execute($row);
};
$person = array(array('name'=>'Dan', 'age'=>'30'), array('name' => 'John', 'age' => '25'), array('name' => 'Wendy', 'age' => '32'));
$db->insertPdo('test_pdo',$person);
そしてエラー:
エラー:SQLSTATE [HY093]:無効なパラメーター番号:バインドされた変数の数がトークンの数と一致しません