From 1f864214976463f31fcf3645cb9ab4934c54d72c Mon Sep 17 00:00:00 2001 From: Dries Buytaert Date: Fri, 25 May 2007 21:01:30 +0000 Subject: - Patch #55516 by David Strauss et al: removed some database locking. --- includes/database.mysqli.inc | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'includes/database.mysqli.inc') 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); } /** -- cgit v1.2.3