Drupal 7 で DB にレコードを複数行まとめて入れる方法
タイトルのとおり Drupal でレコードを複数行まとめて入れる挿入する方法について。
こちら可能は可能なのですがちゃんと解説しているドキュメントがあまりないようでパッと確認したいときに不便します。メモ代わりに書いておきたいと思います。
おなじみ db_insert()
で生成した InsertQuery
に対して values()
を呼び出せば OK です。
$fields = array('title', 'uid');
$values = array(
array(
'title' => 'ひとつめ',
'uid' => 1,
),
array(
'title' => 'ふたつめ',
'uid' => 1,
),
);
$query = db_insert('node')->fields(fields);
foreach ($values as $v) {
$query->values($v);
}
$query->execute();
$values
はインデックス配列でも連想配列でも OK ですが(インデックス配列の場合は $fields
と同じ並びにする必要あり)、連想配列で明示的に書く方がよいかと思います。