diff options
Diffstat (limited to 'lib/private/DB')
-rw-r--r-- | lib/private/DB/Adapter.php | 13 | ||||
-rw-r--r-- | lib/private/DB/Connection.php | 4 |
2 files changed, 17 insertions, 0 deletions
diff --git a/lib/private/DB/Adapter.php b/lib/private/DB/Adapter.php index b9a5f272c57..139b7828596 100644 --- a/lib/private/DB/Adapter.php +++ b/lib/private/DB/Adapter.php @@ -126,4 +126,17 @@ class Adapter { return 0; } } + + public function insertIgnoreConflict($table, $input) : int { + try { + $builder = $this->conn->getQueryBuilder(); + $builder->insert($table); + foreach($input as $key => $value) { + $builder->setValue($key, $builder->createNamedParameter($value)); + } + return $builder->execute(); + } catch(UniqueConstraintViolationException $e) { + return 0; + } + } } diff --git a/lib/private/DB/Connection.php b/lib/private/DB/Connection.php index c63ef0067c1..12a0af6121e 100644 --- a/lib/private/DB/Connection.php +++ b/lib/private/DB/Connection.php @@ -257,6 +257,10 @@ class Connection extends ReconnectWrapper implements IDBConnection { return $this->adapter->insertIfNotExist($table, $input, $compare); } + public function insertIgnoreConflict($table, $input) : int { + return $this->adapter->insertIgnoreConflict($table, $input); + } + private function getType($value) { if (is_bool($value)) { return IQueryBuilder::PARAM_BOOL; |