には次のデータが含まれています:
リーリーここで、これら 2 つのデータをデータ テーブルにバッチで挿入する必要がある場合、一般的には、foreach を使用してから、insert メソッドまたは save メソッドを呼び出してデータを挿入することを考えるでしょう。ただし、実際の操作は foreach ループ内で行われます。Insert は最初のデータのみを挿入しますが、save は 2 番目のデータのみを挿入します。どうしてこれなの?説明は以下の通りです
この ActiveRecord に基づいて属性テーブルに行を挿入します。テーブルの主キーが自動インクリメントされ、挿入前に null であった場合、挿入後に実際の値が設定されます。検証ではこのメソッドは実行されないことに注意してください。 validate を呼び出して検証を実行できます。レコードがデータベースに正常に挿入されると、その isNewRecord プロパティは false に設定され、シナリオ プロパティは update に設定されます。
この場合、トランザクションを使用する以外にデータのバッチ挿入を実装するにはどうすればよいでしょうか?実験の結果、次の 2 つの方法がまとめられました。
最初の方法リーリー
2番目の方法
$user=array( 0=>array('id'=>1,'name'=>'张三'), 0=>array('id'=>2,'name'=>'李四'), );興味がありそうな記事