У меня проблема с моим кодом, когда я пытаюсь сохранить несколько данных в базе данных одновременно, это мой код для сохранения в базе данных:
foreach ($data as $value) { $model->route = $value[0][1]; $model->begin_point = $value[0][2]; $model->begin_point = $value[0][3]; $model->save(); } return $this->redirect('index');
каждый, что я пытаюсь сохранить, я получаю только последний массив данных, который можно сохранить в базе данных. может кто-нибудь мне помочь? или если кто-то может предоставить учебник, это будет реальной помощью.
Создайте массив, перебирая несколько значений.
$data- has multiple values $bulkInsertArray = array(); foreach($data as $value){ $bulkInsertArray[]=[ 'columnName1'=>$value[0][1], 'columnName2'=>$value[0][2], 'columnName3'=>$value[0][3] ]; }
Проверить $ bulkInsertArray не пустым
if(count($bulkInsertArray)>0){ $columnNameArray=['columnName1','columnName2','columnName3']; // below line insert all your record and return number of rows inserted $insertCount = Yii::$app->db->createCommand() ->batchInsert( $tableName, $columnNameArray, $bulkInsertArray ) ->execute(); }
Надеюсь, что этот код поможет.
Вы должны каждый раз создавать новый объект модели. Или Else youre Просто переписывание.
$command = Yii::app()->db->createCommand(); $command->insert('table_name',array('column_1'=>$value_1), 'column_2'=>$value_2));
и так далее.