diff options
author | Dries Buytaert <dries@buytaert.net> | 2007-05-25 21:01:30 +0000 |
---|---|---|
committer | Dries Buytaert <dries@buytaert.net> | 2007-05-25 21:01:30 +0000 |
commit | 1f864214976463f31fcf3645cb9ab4934c54d72c (patch) | |
tree | 493638137f664654be0928954d6bc2b9fe0f2b73 /includes/database.mysqli.inc | |
parent | 633540ef8c7e2a2300caa18f27db6954423a93b2 (diff) | |
download | brdo-1f864214976463f31fcf3645cb9ab4934c54d72c.tar.gz brdo-1f864214976463f31fcf3645cb9ab4934c54d72c.tar.bz2 |
- Patch #55516 by David Strauss et al: removed some database locking.
Diffstat (limited to 'includes/database.mysqli.inc')
-rw-r--r-- | includes/database.mysqli.inc | 8 |
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); } /** |