Laravel сколько строк вставлено во вставку запроса? - PullRequest
4 голосов
/ 13 июля 2020

У меня этот вопрос красноречив в Laravel, мне было любопытно узнать. Если есть способ узнать, сколько записей вставлено или сколько записей проигнорировано в таблице?

DB::table('mytable')->insertOrIgnore($data)

Примечание: одним из ручных способов может быть подсчет записей таблицы до и после процесса. но это влияет на производительность, если есть лучший способ добиться этого.

1 Ответ

1 голос
/ 13 июля 2020

Функция insertOrIgnore() возвращает затронутые строки.

/**
 * Insert a new record into the database while ignoring errors.
 *
 * @param  array  $values
 * @return int
 */
public function insertOrIgnore(array $values) {

Таким образом, вы можете просто использовать затронутые и сравнить с тем, что ожидалось вставить.

$affected = DB::table('mytable')->insertOrIgnore($data);
$ignored = count($data) - $affected;
...