1. ホーム
  2. php

[解決済み】eloquent ORMを使用したLaravelの一括挿入

2022-04-14 04:58:57

質問

Eloquent ORMを使用してLaravelでデータベースの一括挿入を実行するにはどうすればよいですか?

私はXMLドキュメントを操作しており、その要素をループしています。Laravelでこのようなことを実現したいのですが。

$sXML = download_page('http://remotepage.php&function=getItems&count=100&page=1');
$oXML = new SimpleXMLElement($sXML);
$query = "INSERT INTO tbl_item (first_name, last_name, date_added) VALUES";
foreach($oXML->results->item->item as $oEntry){
    $query .=  "('" . $oEntry->firstname . "', '" . $oEntry->lastname . "', '" . date("Y-m-d H:i:s") . "'),";
}
mysql_query($query);

が、以下のエラーが発生します。

sqlstate[hy093]: 無効なパラメータ番号です:名前付きパラメータと位置付けパラメータが混在しています。

解決方法は?

を使用することができます。 Eloquent::insert() .

例えば

$data = [
    ['name'=>'Coder 1', 'rep'=>'4096'],
    ['name'=>'Coder 2', 'rep'=>'2048'],
    //...
];

Coder::insert($data);