/** * Insert a new record into the database, with an update if it exists * * @param Traversable $values * @param array $updateValues an array of column => bindings pairs to update * @return int */ public function insertUpdate(Traversable $values, array $updateValues) { $upserts = 0; $this->buffer($values, function (array $buffer) use($updateValues, &$upserts) { $upserts += $this->builder->insertUpdate($buffer, $updateValues)->rowCount(); }); return $upserts; }