Как отследить, что вставка не удалась при batchInsert?
При использовании ActiveRecord, метод save возвращает результат успешности произведённой операции. Если я хочу вставить много записей, я хочу использовать batchInsert.
Но как отследить, вставились ли именно все записи? И что, если хоть одна не вставилась - то откатить транзацкцию? Потому что всё, что возвращает метод - количество затронутых строк. Использовать его и сопоставлять с количеством записей, которые я хочу внести? Как корректно сделать?
Ответы (1 шт):
Автор решения: fedornabilkin
→ Ссылка
$items = [[1, 'name'], [2, 'name2']];
$query = (new Query())->createCommand()->batchInsert(
'tableName',
['id', 'name'],
$items
);
if ($query->execute() != count($items)) {// rollback}