diff --git a/phpBB/phpbb/db/driver/driver.php b/phpBB/phpbb/db/driver/driver.php index cd9f1f058e..690cfbf1e9 100644 --- a/phpBB/phpbb/db/driver/driver.php +++ b/phpBB/phpbb/db/driver/driver.php @@ -634,6 +634,14 @@ abstract class driver implements driver_interface return $expression; } + /** + * {@inheritDoc} + */ + public function sql_nextid() + { + return $this->sql_last_inserted_id(); + } + /** * {@inheritDoc} */ diff --git a/phpBB/phpbb/db/driver/driver_interface.php b/phpBB/phpbb/db/driver/driver_interface.php index e269fac585..73aabaf4a0 100644 --- a/phpBB/phpbb/db/driver/driver_interface.php +++ b/phpBB/phpbb/db/driver/driver_interface.php @@ -289,12 +289,34 @@ interface driver_interface public function cast_expr_to_bigint($expression); /** - * Get last inserted id after insert statement - * - * @return string Autoincrement value of the last inserted row - */ + * Gets the ID of the **last** inserted row immediately after an INSERT + * statement. + * + * **Note**: Despite the name, the returned ID refers to the row that has + * just been inserted, rather than the hypothetical ID of the next row if a + * new one was to be inserted. + * + * The returned value can be used for selecting the item that has just been + * inserted or for updating another table with an ID pointing to that item. + * + * Alias of `sql_last_inserted_id`. + * + * @deprecated 3.3.11-RC1 Replaced by sql_last_inserted_id(), to be removed in 4.1.0-a1 + * + * @return string|false Auto-incremented value of the last inserted row + */ public function sql_nextid(); + /** + * Gets the ID of the last inserted row immediately after an INSERT + * statement. The returned value can be used for selecting the item that has + * just been inserted or for updating another table with an ID pointing to + * that item. + * + * @return string|false Auto-incremented value of the last inserted row + */ + public function sql_last_inserted_id(); + /** * Add to query count * diff --git a/phpBB/phpbb/db/driver/factory.php b/phpBB/phpbb/db/driver/factory.php index b2a5707120..2541c28481 100644 --- a/phpBB/phpbb/db/driver/factory.php +++ b/phpBB/phpbb/db/driver/factory.php @@ -314,11 +314,19 @@ class factory implements driver_interface } /** - * {@inheritdoc} - */ + * {@inheritdoc} + */ public function sql_nextid() { - return $this->get_driver()->sql_nextid(); + return $this->get_driver()->sql_last_inserted_id(); + } + + /** + * {@inheritdoc} + */ + public function sql_last_inserted_id() + { + return $this->get_driver()->sql_last_inserted_id(); } /** diff --git a/phpBB/phpbb/db/driver/mssql_odbc.php b/phpBB/phpbb/db/driver/mssql_odbc.php index 06cdce7a15..ac66d94d0d 100644 --- a/phpBB/phpbb/db/driver/mssql_odbc.php +++ b/phpBB/phpbb/db/driver/mssql_odbc.php @@ -269,9 +269,9 @@ class mssql_odbc extends \phpbb\db\driver\mssql_base } /** - * {@inheritDoc} - */ - function sql_nextid() + * {@inheritdoc} + */ + public function sql_last_inserted_id() { $result_id = @odbc_exec($this->db_connect_id, 'SELECT @@IDENTITY'); diff --git a/phpBB/phpbb/db/driver/mssqlnative.php b/phpBB/phpbb/db/driver/mssqlnative.php index 30ef9d9bc4..357047ace0 100644 --- a/phpBB/phpbb/db/driver/mssqlnative.php +++ b/phpBB/phpbb/db/driver/mssqlnative.php @@ -271,9 +271,9 @@ class mssqlnative extends \phpbb\db\driver\mssql_base } /** - * {@inheritDoc} - */ - function sql_nextid() + * {@inheritdoc} + */ + public function sql_last_inserted_id() { $result_id = @sqlsrv_query($this->db_connect_id, 'SELECT @@IDENTITY'); diff --git a/phpBB/phpbb/db/driver/mysqli.php b/phpBB/phpbb/db/driver/mysqli.php index 1b7f6252f6..d7a929315b 100644 --- a/phpBB/phpbb/db/driver/mysqli.php +++ b/phpBB/phpbb/db/driver/mysqli.php @@ -289,9 +289,9 @@ class mysqli extends \phpbb\db\driver\mysql_base } /** - * {@inheritDoc} - */ - function sql_nextid() + * {@inheritdoc} + */ + public function sql_last_inserted_id() { return ($this->db_connect_id) ? @mysqli_insert_id($this->db_connect_id) : false; } diff --git a/phpBB/phpbb/db/driver/oracle.php b/phpBB/phpbb/db/driver/oracle.php index 3f6bc49b35..dc5eb994ec 100644 --- a/phpBB/phpbb/db/driver/oracle.php +++ b/phpBB/phpbb/db/driver/oracle.php @@ -570,9 +570,9 @@ class oracle extends \phpbb\db\driver\driver } /** - * {@inheritDoc} - */ - function sql_nextid() + * {@inheritdoc} + */ + public function sql_last_inserted_id() { $query_id = $this->query_result; diff --git a/phpBB/phpbb/db/driver/postgres.php b/phpBB/phpbb/db/driver/postgres.php index 3ee4b2b00e..02ffa4e3e7 100644 --- a/phpBB/phpbb/db/driver/postgres.php +++ b/phpBB/phpbb/db/driver/postgres.php @@ -342,9 +342,9 @@ class postgres extends \phpbb\db\driver\driver } /** - * {@inheritDoc} - */ - function sql_nextid() + * {@inheritdoc} + */ + public function sql_last_inserted_id() { $query_id = $this->query_result; diff --git a/phpBB/phpbb/db/driver/sqlite3.php b/phpBB/phpbb/db/driver/sqlite3.php index 61b87d86b5..93a1c36ee9 100644 --- a/phpBB/phpbb/db/driver/sqlite3.php +++ b/phpBB/phpbb/db/driver/sqlite3.php @@ -242,9 +242,9 @@ class sqlite3 extends \phpbb\db\driver\driver } /** - * {@inheritDoc} - */ - public function sql_nextid() + * {@inheritdoc} + */ + public function sql_last_inserted_id() { return ($this->db_connect_id) ? $this->dbo->lastInsertRowID() : false; }