aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes/db
diff options
context:
space:
mode:
authorMeik Sievertsen <acydburn@phpbb.com>2006-06-06 20:53:46 +0000
committerMeik Sievertsen <acydburn@phpbb.com>2006-06-06 20:53:46 +0000
commitdd9ad539fdab80badedf801a816b8a0beafbbf5c (patch)
treedb8ae8a184b060d5576604cc0dfa723773daedb8 /phpBB/includes/db
parent2c8afb820e3842bed2ab6cec4053e71b5c566985 (diff)
downloadforums-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.php44
-rw-r--r--phpBB/includes/db/firebird.php24
-rw-r--r--phpBB/includes/db/mssql.php24
-rw-r--r--phpBB/includes/db/mssql_odbc.php23
-rw-r--r--phpBB/includes/db/mysql.php24
-rw-r--r--phpBB/includes/db/mysql4.php24
-rw-r--r--phpBB/includes/db/mysqli.php23
-rw-r--r--phpBB/includes/db/oracle.php26
-rw-r--r--phpBB/includes/db/postgres.php24
-rw-r--r--phpBB/includes/db/sqlite.php24
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;
}
/**