summaryrefslogtreecommitdiff
path: root/includes/database.mysqli.inc
diff options
context:
space:
mode:
Diffstat (limited to 'includes/database.mysqli.inc')
-rw-r--r--includes/database.mysqli.inc8
1 files changed, 3 insertions, 5 deletions
diff --git a/includes/database.mysqli.inc b/includes/database.mysqli.inc
index ad58a6f24..baac124de 100644
--- a/includes/database.mysqli.inc
+++ b/includes/database.mysqli.inc
@@ -242,13 +242,11 @@ function db_error() {
* with table prefixes. For example, db_next_id('{node}_nid');
*/
function db_next_id($name) {
+ global $active_db;
$name = db_prefix_tables($name);
- db_query('LOCK TABLES {sequences} WRITE');
- $id = db_result(db_query("SELECT id FROM {sequences} WHERE name = '%s'", $name)) + 1;
- db_query("REPLACE INTO {sequences} VALUES ('%s', %d)", $name, $id);
- db_query('UNLOCK TABLES');
+ db_query('INSERT INTO {sequences} VALUES ("%s", LAST_INSERT_ID(1)) ON DUPLICATE KEY UPDATE id = LAST_INSERT_ID(id + 1)', $name);
- return $id;
+ return mysqli_insert_id($active_db);
}
/**