X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FDatabase%2FDatabase.php;h=671425f9d188c8d19a42f0544b177db7aa9a98d6;hb=e8fee5644b5e746f8c09e604caac3d678f376989;hp=41733f5f95bf226587c34b4b3d9154d92f2527dc;hpb=1e68c90fb23af55fa6606a179d79019af8f6b29c;p=friendica.git diff --git a/src/Database/Database.php b/src/Database/Database.php index 41733f5f95..671425f9d1 100644 --- a/src/Database/Database.php +++ b/src/Database/Database.php @@ -1284,11 +1284,12 @@ class Database * @param array $fields contains the fields that are updated * @param array $condition condition array with the key values * @param array|boolean $old_fields array with the old field values that are about to be replaced (true = update on duplicate, false = don't update identical fields) + * @param array $params Parameters: "ignore" If set to "true" then the update is done with the ignore parameter * * @return boolean was the update successfull? * @throws \Exception */ - public function update($table, $fields, $condition, $old_fields = []) + public function update($table, $fields, $condition, $old_fields = [], $params = []) { if (empty($table) || empty($fields) || empty($condition)) { $this->logger->info('Table, fields and condition have to be set'); @@ -1325,7 +1326,13 @@ class Database $condition_string = DBA::buildCondition($condition); - $sql = "UPDATE " . $table_string . " SET " + if (!empty($params['ignore'])) { + $ignore = 'IGNORE '; + } else { + $ignore = ''; + } + + $sql = "UPDATE " . $ignore . $table_string . " SET " . implode(" = ?, ", array_map([DBA::class, 'quoteIdentifier'], array_keys($fields))) . " = ?" . $condition_string;