diff options
author | Meik Sievertsen <acydburn@phpbb.com> | 2006-06-06 20:53:46 +0000 |
---|---|---|
committer | Meik Sievertsen <acydburn@phpbb.com> | 2006-06-06 20:53:46 +0000 |
commit | dd9ad539fdab80badedf801a816b8a0beafbbf5c (patch) | |
tree | db8ae8a184b060d5576604cc0dfa723773daedb8 /phpBB/includes/db | |
parent | 2c8afb820e3842bed2ab6cec4053e71b5c566985 (diff) | |
download | forums-dd9ad539fdab80badedf801a816b8a0beafbbf5c.tar forums-dd9ad539fdab80badedf801a816b8a0beafbbf5c.tar.gz forums-dd9ad539fdab80badedf801a816b8a0beafbbf5c.tar.bz2 forums-dd9ad539fdab80badedf801a816b8a0beafbbf5c.tar.xz forums-dd9ad539fdab80badedf801a816b8a0beafbbf5c.zip |
ok, this one is rather large... the most important change:
re-introduce append_sid: old style continues to work, not a performance hog as it was in 2.0.x -> structure is different
apart from this, code cleanage, bug fixing, etc.
git-svn-id: file:///svn/phpbb/trunk@6015 89ea8834-ac86-4346-8a33-228a782c2dd0
Diffstat (limited to 'phpBB/includes/db')
-rw-r--r-- | phpBB/includes/db/dbal.php | 44 | ||||
-rw-r--r-- | phpBB/includes/db/firebird.php | 24 | ||||
-rw-r--r-- | phpBB/includes/db/mssql.php | 24 | ||||
-rw-r--r-- | phpBB/includes/db/mssql_odbc.php | 23 | ||||
-rw-r--r-- | phpBB/includes/db/mysql.php | 24 | ||||
-rw-r--r-- | phpBB/includes/db/mysql4.php | 24 | ||||
-rw-r--r-- | phpBB/includes/db/mysqli.php | 23 | ||||
-rw-r--r-- | phpBB/includes/db/oracle.php | 26 | ||||
-rw-r--r-- | phpBB/includes/db/postgres.php | 24 | ||||
-rw-r--r-- | phpBB/includes/db/sqlite.php | 24 |
10 files changed, 107 insertions, 153 deletions
diff --git a/phpBB/includes/db/dbal.php b/phpBB/includes/db/dbal.php index 4900486a9e..3ad4bf86ba 100644 --- a/phpBB/includes/db/dbal.php +++ b/phpBB/includes/db/dbal.php @@ -121,6 +121,48 @@ class dbal } /** + * SQL Transaction + * @private + */ + function sql_transaction($status = 'begin') + { + switch ($status) + { + case 'begin': + // Commit previously opened transaction before opening another transaction + if ($this->transaction) + { + $this->_sql_transaction('commit'); + } + + $result = $this->_sql_transaction('begin'); + $this->transaction = true; + break; + + case 'commit': + $result = $this->_sql_transaction('commit'); + $this->transaction = false; + + if (!$result) + { + $this->_sql_transaction('rollback'); + } + break; + + case 'rollback': + $result = $this->_sql_transaction('rollback'); + $this->transaction = false; + break; + + default: + $result = $this->_sql_transaction($status); + break; + } + + return $result; + } + + /** * Build sql statement from array for insert/update/select statements * * Idea for this from Ikonboard @@ -328,7 +370,7 @@ class dbal */ function sql_report($mode, $query = '') { - global $cache, $starttime, $phpbb_root_path, $user, $SID; + global $cache, $starttime, $phpbb_root_path, $user; if (empty($_GET['explain'])) { diff --git a/phpBB/includes/db/firebird.php b/phpBB/includes/db/firebird.php index 61d76e275c..616e064176 100644 --- a/phpBB/includes/db/firebird.php +++ b/phpBB/includes/db/firebird.php @@ -49,37 +49,27 @@ class dbal_firebird extends dbal } /** - * sql transaction + * SQL Transaction + * @private */ - function sql_transaction($status = 'begin') + function _sql_transaction($status = 'begin') { switch ($status) { case 'begin': - $result = true; - $this->transaction = true; + return true; break; case 'commit': - $result = @ibase_commit(); - $this->transaction = false; - - if (!$result) - { - @ibase_rollback(); - } + return @ibase_commit(); break; case 'rollback': - $result = @ibase_rollback(); - $this->transaction = false; + return @ibase_rollback(); break; - - default: - $result = true; } - return $result; + return true; } /** diff --git a/phpBB/includes/db/mssql.php b/phpBB/includes/db/mssql.php index c700525577..ef6f406edc 100644 --- a/phpBB/includes/db/mssql.php +++ b/phpBB/includes/db/mssql.php @@ -56,37 +56,27 @@ class dbal_mssql extends dbal } /** - * sql transaction + * SQL Transaction + * @private */ - function sql_transaction($status = 'begin') + function _sql_transaction($status = 'begin') { switch ($status) { case 'begin': - $result = @mssql_query('BEGIN TRANSACTION', $this->db_connect_id); - $this->transaction = true; + return @mssql_query('BEGIN TRANSACTION', $this->db_connect_id); break; case 'commit': - $result = @mssql_query('commit', $this->db_connect_id); - $this->transaction = false; - - if (!$result) - { - @mssql_query('ROLLBACK', $this->db_connect_id); - } + return @mssql_query('commit', $this->db_connect_id); break; case 'rollback': - $result = @mssql_query('ROLLBACK', $this->db_connect_id); - $this->transaction = false; + return @mssql_query('ROLLBACK', $this->db_connect_id); break; - - default: - $result = true; } - return $result; + return true; } /** diff --git a/phpBB/includes/db/mssql_odbc.php b/phpBB/includes/db/mssql_odbc.php index 4ae5339a62..0ae0d7e770 100644 --- a/phpBB/includes/db/mssql_odbc.php +++ b/phpBB/includes/db/mssql_odbc.php @@ -50,40 +50,31 @@ class dbal_mssql_odbc extends dbal } /** - * sql transaction + * SQL Transaction + * @private */ - function sql_transaction($status = 'begin') + function _sql_transaction($status = 'begin') { switch ($status) { case 'begin': - $result = @odbc_autocommit($this->db_connect_id, false); - $this->transaction = true; + return @odbc_autocommit($this->db_connect_id, false); break; case 'commit': $result = @odbc_commit($this->db_connect_id); @odbc_autocommit($this->db_connect_id, true); - $this->transaction = false; - - if (!$result) - { - @odbc_rollback($this->db_connect_id); - @odbc_autocommit($this->db_connect_id, true); - } + return $result; break; case 'rollback': $result = @odbc_rollback($this->db_connect_id); @odbc_autocommit($this->db_connect_id, true); - $this->transaction = false; + return $result; break; - - default: - $result = true; } - return $result; + return true; } /** diff --git a/phpBB/includes/db/mysql.php b/phpBB/includes/db/mysql.php index c31132b990..f346663d56 100644 --- a/phpBB/includes/db/mysql.php +++ b/phpBB/includes/db/mysql.php @@ -56,37 +56,27 @@ class dbal_mysql extends dbal } /** - * sql transaction + * SQL Transaction + * @private */ - function sql_transaction($status = 'begin') + function _sql_transaction($status = 'begin') { switch ($status) { case 'begin': - $result = @mysql_query('BEGIN', $this->db_connect_id); - $this->transaction = true; + return @mysql_query('BEGIN', $this->db_connect_id); break; case 'commit': - $result = @mysql_query('COMMIT', $this->db_connect_id); - $this->transaction = false; - - if (!$result) - { - @mysql_query('ROLLBACK', $this->db_connect_id); - } + return @mysql_query('COMMIT', $this->db_connect_id); break; case 'rollback': - $result = @mysql_query('ROLLBACK', $this->db_connect_id); - $this->transaction = false; + return @mysql_query('ROLLBACK', $this->db_connect_id); break; - - default: - $result = true; } - return $result; + return true; } /** diff --git a/phpBB/includes/db/mysql4.php b/phpBB/includes/db/mysql4.php index 26da6432c1..d98a8069e8 100644 --- a/phpBB/includes/db/mysql4.php +++ b/phpBB/includes/db/mysql4.php @@ -58,37 +58,27 @@ class dbal_mysql4 extends dbal } /** - * sql transaction + * SQL Transaction + * @private */ - function sql_transaction($status = 'begin') + function _sql_transaction($status = 'begin') { switch ($status) { case 'begin': - $result = @mysql_query('BEGIN', $this->db_connect_id); - $this->transaction = true; + return @mysql_query('BEGIN', $this->db_connect_id); break; case 'commit': - $result = @mysql_query('COMMIT', $this->db_connect_id); - $this->transaction = false; - - if (!$result) - { - @mysql_query('ROLLBACK', $this->db_connect_id); - } + return @mysql_query('COMMIT', $this->db_connect_id); break; case 'rollback': - $result = @mysql_query('ROLLBACK', $this->db_connect_id); - $this->transaction = false; + return @mysql_query('ROLLBACK', $this->db_connect_id); break; - - default: - $result = true; } - return $result; + return true; } /** diff --git a/phpBB/includes/db/mysqli.php b/phpBB/includes/db/mysqli.php index 1a969684a2..cdcdc58d87 100644 --- a/phpBB/includes/db/mysqli.php +++ b/phpBB/includes/db/mysqli.php @@ -58,40 +58,31 @@ class dbal_mysqli extends dbal } /** - * sql transaction + * SQL Transaction + * @private */ - function sql_transaction($status = 'begin') + function _sql_transaction($status = 'begin') { switch ($status) { case 'begin': - $result = @mysqli_autocommit($this->db_connect_id, false); - $this->transaction = true; + return @mysqli_autocommit($this->db_connect_id, false); break; case 'commit': $result = @mysqli_commit($this->db_connect_id); @mysqli_autocommit($this->db_connect_id, true); - $this->transaction = false; - - if (!$result) - { - @mysqli_rollback($this->db_connect_id); - @mysqli_autocommit($this->db_connect_id, true); - } + return $result; break; case 'rollback': $result = @mysqli_rollback($this->db_connect_id); @mysqli_autocommit($this->db_connect_id, true); - $this->transaction = false; + return $result; break; - - default: - $result = true; } - return $result; + return true; } /** diff --git a/phpBB/includes/db/oracle.php b/phpBB/includes/db/oracle.php index bef33b4fd2..05f910e25d 100644 --- a/phpBB/includes/db/oracle.php +++ b/phpBB/includes/db/oracle.php @@ -48,37 +48,27 @@ class dbal_oracle extends dbal } /** - * sql transaction + * SQL Transaction + * @private */ - function sql_transaction($status = 'begin') + function _sql_transaction($status = 'begin') { switch ($status) { case 'begin': - $result = true; - $this->transaction = true; + return true; break; case 'commit': - $result = @ocicommit($this->db_connect_id); - $this->transaction = false; - - if (!$result) - { - @ocirollback($this->db_connect_id); - } + return @ocicommit($this->db_connect_id); break; case 'rollback': - $result = @ocirollback($this->db_connect_id); - $this->transaction = false; + return @ocirollback($this->db_connect_id); break; - - default: - $result = true; } - return $result; + return true; } /** @@ -355,7 +345,7 @@ class dbal_oracle extends dbal */ function sql_escape($msg) { - return str_replace("'", "''", str_replace('\\', '\\\\', $msg)); + return str_replace("'", "''", $msg); } function _sql_custom_build($stage, $data) diff --git a/phpBB/includes/db/postgres.php b/phpBB/includes/db/postgres.php index fbb113178a..3589f0c552 100644 --- a/phpBB/includes/db/postgres.php +++ b/phpBB/includes/db/postgres.php @@ -85,37 +85,27 @@ class dbal_postgres extends dbal } /** - * sql transaction + * SQL Transaction + * @private */ - function sql_transaction($status = 'begin') + function _sql_transaction($status = 'begin') { switch ($status) { case 'begin': - $result = @pg_query($this->db_connect_id, 'BEGIN'); - $this->transaction = true; + return @pg_query($this->db_connect_id, 'BEGIN'); break; case 'commit': - $result = @pg_query($this->db_connect_id, 'COMMIT'); - $this->transaction = false; - - if (!$result) - { - @pg_query($this->db_connect_id, 'ROLLBACK'); - } + return @pg_query($this->db_connect_id, 'COMMIT'); break; case 'rollback': - $result = @pg_query($this->db_connect_id, 'ROLLBACK'); - $this->transaction = false; + return @pg_query($this->db_connect_id, 'ROLLBACK'); break; - - default: - $result = true; } - return $result; + return true; } /** diff --git a/phpBB/includes/db/sqlite.php b/phpBB/includes/db/sqlite.php index 0bfe9a40ca..be2ec3e400 100644 --- a/phpBB/includes/db/sqlite.php +++ b/phpBB/includes/db/sqlite.php @@ -52,37 +52,27 @@ class dbal_sqlite extends dbal } /** - * sql transaction + * SQL Transaction + * @private */ - function sql_transaction($status = 'begin') + function _sql_transaction($status = 'begin') { switch ($status) { case 'begin': - $result = @sqlite_query('BEGIN', $this->db_connect_id); - $this->transaction = true; + return @sqlite_query('BEGIN', $this->db_connect_id); break; case 'commit': - $result = @sqlite_query('COMMIT', $this->db_connect_id); - $this->transaction = false; - - if (!$result) - { - @sqlite_query('ROLLBACK', $this->db_connect_id); - } + return @sqlite_query('COMMIT', $this->db_connect_id); break; case 'rollback': - $result = @sqlite_query('ROLLBACK', $this->db_connect_id); - $this->transaction = false; + return @sqlite_query('ROLLBACK', $this->db_connect_id); break; - - default: - $result = true; } - return $result; + return true; } /** |