From: Janusz Dobrowolski Date: Sat, 9 Apr 2011 11:47:20 +0000 (+0200) Subject: db_insert_id() returned wrong id when $sql_trail=1. Nasty bug resulting in unexpected... X-Git-Tag: 2.3-final~713 X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=commitdiff_plain;h=930aa254cbc33488b79d12ac65553facda7b6873;p=fa-stable.git db_insert_id() returned wrong id when $sql_trail=1. Nasty bug resulting in unexpected problems in various places. --- diff --git a/includes/db/connect_db.inc b/includes/db/connect_db.inc index ed706fe3..c181b989 100644 --- a/includes/db/connect_db.inc +++ b/includes/db/connect_db.inc @@ -36,7 +36,7 @@ $db_duplicate_error_code = 1062; function db_query($sql, $err_msg=null) { global $db, $show_sql, $sql_trail, $select_trail, $go_debug, $sql_queries, $Ajax, - $db_connections; + $db_connections, $db_last_inserted_id; // set current db prefix $cur_prefix = $db_connections[$_SESSION["wa_current_user"]->cur_con]['tbpref']; @@ -49,7 +49,9 @@ function db_query($sql, $err_msg=null) } $result = mysql_query($sql, $db); + if($sql_trail) { + $db_last_inserted_id = mysql_insert_id($db); // preserve in case trail insert is done if ($select_trail || (strstr($sql, 'SELECT') === false)) { mysql_query( "INSERT INTO ".$cur_prefix."sql_trail @@ -150,8 +152,9 @@ function db_error_msg($conn) function db_insert_id() { - global $db; - return mysql_insert_id($db); + global $db_last_inserted_id, $sql_trail, $db; + + return $sql_trail ? $db_last_inserted_id : mysql_insert_id($db); } function db_num_affected_rows()