TransWikia.com

Как отследить, что вставка не удалась при batchInsert?

Stack Overflow на русском Asked on November 22, 2021

При использовании ActiveRecord, метод save возвращает результат успешности произведённой операции. Если я хочу вставить много записей, я хочу использовать batchInsert.

Но как отследить, вставились ли именно все записи? И что, если хоть одна не вставилась – то откатить транзацкцию? Потому что всё, что возвращает метод – количество затронутых строк. Использовать его и сопоставлять с количеством записей, которые я хочу внести? Как корректно сделать?

One Answer

$items = [[1, 'name'], [2, 'name2']];

$query = (new Query())->createCommand()->batchInsert(
    'tableName',
    ['id', 'name'],
    $items
);

if ($query->execute() != count($items)) {// rollback}

Answered by fedornabilkin on November 22, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP