Merge branch '3.3.x'

This commit is contained in:
Marc Alexander 2023-04-11 22:22:26 +02:00
commit 80e55b2ec8
No known key found for this signature in database
GPG key ID: 50E0D2423696F995
9 changed files with 64 additions and 25 deletions

View file

@ -690,6 +690,14 @@ abstract class driver implements driver_interface
return $expression; return $expression;
} }
/**
* {@inheritDoc}
*/
public function sql_nextid()
{
return $this->sql_last_inserted_id();
}
/** /**
* {@inheritDoc} * {@inheritDoc}
*/ */

View file

@ -289,12 +289,35 @@ interface driver_interface
public function cast_expr_to_bigint($expression); public function cast_expr_to_bigint($expression);
/** /**
* Get last inserted id after insert statement
* * Gets the ID of the **last** inserted row immediately after an INSERT
* @return int|false Autoincrement value of the last inserted row * 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 int|false Auto-incremented value of the last inserted row
*/
public function sql_nextid(); 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 int|false Auto-incremented value of the last inserted row
*/
public function sql_last_inserted_id();
/** /**
* Add to query count * Add to query count
* *

View file

@ -316,11 +316,19 @@ class factory implements driver_interface
} }
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */
public function sql_nextid() 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();
} }
/** /**

View file

@ -264,9 +264,9 @@ class mssql_odbc extends \phpbb\db\driver\mssql_base
} }
/** /**
* {@inheritDoc} * {@inheritdoc}
*/ */
function sql_nextid() public function sql_last_inserted_id()
{ {
$result_id = @odbc_exec($this->db_connect_id, 'SELECT @@IDENTITY'); $result_id = @odbc_exec($this->db_connect_id, 'SELECT @@IDENTITY');

View file

@ -269,9 +269,9 @@ class mssqlnative extends \phpbb\db\driver\mssql_base
} }
/** /**
* {@inheritDoc} * {@inheritdoc}
*/ */
function sql_nextid() public function sql_last_inserted_id()
{ {
$result_id = @sqlsrv_query($this->db_connect_id, 'SELECT @@IDENTITY'); $result_id = @sqlsrv_query($this->db_connect_id, 'SELECT @@IDENTITY');

View file

@ -285,9 +285,9 @@ class mysqli extends \phpbb\db\driver\mysql_base
} }
/** /**
* {@inheritDoc} * {@inheritdoc}
*/ */
function sql_nextid() public function sql_last_inserted_id()
{ {
return ($this->db_connect_id) ? (int) @mysqli_insert_id($this->db_connect_id) : false; return ($this->db_connect_id) ? (int) @mysqli_insert_id($this->db_connect_id) : false;
} }

View file

@ -568,9 +568,9 @@ class oracle extends \phpbb\db\driver\driver
} }
/** /**
* {@inheritDoc} * {@inheritdoc}
*/ */
function sql_nextid() public function sql_last_inserted_id()
{ {
$query_id = $this->query_result; $query_id = $this->query_result;

View file

@ -328,9 +328,9 @@ class postgres extends \phpbb\db\driver\driver
} }
/** /**
* {@inheritDoc} * {@inheritdoc}
*/ */
function sql_nextid() public function sql_last_inserted_id()
{ {
$query_id = $this->query_result; $query_id = $this->query_result;

View file

@ -228,9 +228,9 @@ class sqlite3 extends \phpbb\db\driver\driver
} }
/** /**
* {@inheritDoc} * {@inheritdoc}
*/ */
public function sql_nextid() public function sql_last_inserted_id()
{ {
return ($this->db_connect_id) ? $this->dbo->lastInsertRowID() : false; return ($this->db_connect_id) ? $this->dbo->lastInsertRowID() : false;
} }