diff options
author | Dries Buytaert <dries@buytaert.net> | 2009-02-22 16:31:24 +0000 |
---|---|---|
committer | Dries Buytaert <dries@buytaert.net> | 2009-02-22 16:31:24 +0000 |
commit | e1652e99b61577ac42d6d6618420c872c0e42435 (patch) | |
tree | 23e8385467e826fd97ab434c5201d7a96a810567 /includes/database/mysql | |
parent | 916b11afabacf5b7e142ce3fe370a24a80c15b3e (diff) | |
download | brdo-e1652e99b61577ac42d6d6618420c872c0e42435.tar.gz brdo-e1652e99b61577ac42d6d6618420c872c0e42435.tar.bz2 |
- Patch #374940 by Dave Reid et al: fixed MergeQuery problem.
Diffstat (limited to 'includes/database/mysql')
-rw-r--r-- | includes/database/mysql/query.inc | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/includes/database/mysql/query.inc b/includes/database/mysql/query.inc index 751137602..d5cb36505 100644 --- a/includes/database/mysql/query.inc +++ b/includes/database/mysql/query.inc @@ -143,6 +143,12 @@ class MergeQuery_mysql extends MergeQuery { } } + // If the merge query has no fields to update, add the first key as an + // update field so the query will not fail if a duplicate key is found. + if (!$update_fields && !$this->expressionFields) { + $update_fields = array_slice($this->keyFields, 0, 1, TRUE); + } + $insert_fields = $this->insertFields + $this->keyFields; $query = "INSERT INTO {" . $this->table . '} (' . implode(', ', array_keys($insert_fields)) . ') VALUES '; |