batch upsert

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
kukuruku
Сообщения: 1318
Зарегистрирован: 2011.02.14, 11:36

batch upsert

Сообщение kukuruku »

как сделать по аналогии с batchInsert?
нужно вставить много записей
код из примера не работает, нужно явно перечислить параметры после update

Код: Выделить всё

$db = Yii::$app->db;
$sql = $db->queryBuilder->batchInsert($table, $fields, $rows);
$db->createCommand($sql . ' ON DUPLICATE KEY UPDATE')->execute();
frid-karatel
Сообщения: 50
Зарегистрирован: 2017.03.06, 15:37
Откуда: Владивосток

Re: batch upsert

Сообщение frid-karatel »

В foreach сгенерировать массив и вставить после KEY UPDATE?

Код: Выделить всё

$update = [];
foreach ($fields as $field) {
    $field  = $db->quoteSql($field);
    $update = $field . '=VALUES(' . $field . ')';
}
$update = implode(',', $update);

$db->createCommand($sql . ' ON DUPLICATE KEY UPDATE ' . $update)->execute();
Ответить