Laravel 在插入查询中插入了多少行?

Nas*_*zad 9 insert count laravel eloquent

我有这个疑问Laravel,我很想知道。是否有办法知道表中插入了多少记录或忽略了多少记录?

DB::table('mytable')->insertOrIgnore($data)
Run Code Online (Sandbox Code Playgroud)

注:手动方式之一可以是,统计加工前后表的记录。但这会影响性能,如果有更好的方法来实现这一点。

mrh*_*rhn 6

该函数insertOrIgnore()返回受影响的行。

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

因此,您可以简单地使用返回值并将其与预期插入的值进行比较:

$affected = DB::table('mytable')->insertOrIgnore($data);
$ignored = count($data) - $affected;
Run Code Online (Sandbox Code Playgroud)