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に接続
