PDOを使用する際、query()メソッドでもSQL文を実行することができますが、prepare()というメソッドを使用すると、値だけが変わるSQL文を何度も実行する場合は、変化する値だけを与えて実行することで、実行のコストを下げることができます。
また、SQLインジェクション対策にもなりますので、やってみましょう!
例:(id=1, name=’naruto’),(id=2, name=’sasuke’)という配列を、namelistというテーブルに挿入する
//データベースへ接続 例ではsqliteになってますが、適宜環境に応じて変更してください $dbh=newPDO('sqlite:/******'); //prepareによる実行準備 $sql="INSERT INTO namelist (id,name) VALUES(:id,:name)"; $stmt=$dbh->prepare($sql); //データの配列 $names=array(array('id'=>1, 'name'=> 'naruto'), array('id'=>2, 'name' => 'sasuke')); //配列の値を、一つずつexecuteを使って実行 foreach($names as $name){ $stmt->execute($name); }
参考
PDOでMySQLに接続