aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes/db/mysql.php
diff options
context:
space:
mode:
authorDavid M <davidmj@users.sourceforge.net>2007-08-14 12:27:35 +0000
committerDavid M <davidmj@users.sourceforge.net>2007-08-14 12:27:35 +0000
commit8ab583dce0d0a266eb6f229f1a6afa4b72c70803 (patch)
tree5fa7f32dafada596fbb162f7fbc95e3cb139b083 /phpBB/includes/db/mysql.php
parent0c948afde2f5cfbdf35a041f870c9bad175644cb (diff)
downloadforums-8ab583dce0d0a266eb6f229f1a6afa4b72c70803.tar
forums-8ab583dce0d0a266eb6f229f1a6afa4b72c70803.tar.gz
forums-8ab583dce0d0a266eb6f229f1a6afa4b72c70803.tar.bz2
forums-8ab583dce0d0a266eb6f229f1a6afa4b72c70803.tar.xz
forums-8ab583dce0d0a266eb6f229f1a6afa4b72c70803.zip
turn on strict mode for databases that support it
git-svn-id: file:///svn/phpbb/trunk@8029 89ea8834-ac86-4346-8a33-228a782c2dd0
Diffstat (limited to 'phpBB/includes/db/mysql.php')
-rw-r--r--phpBB/includes/db/mysql.php25
1 files changed, 25 insertions, 0 deletions
diff --git a/phpBB/includes/db/mysql.php b/phpBB/includes/db/mysql.php
index 71a2002eb4..b3be4f9bd9 100644
--- a/phpBB/includes/db/mysql.php
+++ b/phpBB/includes/db/mysql.php
@@ -57,6 +57,31 @@ class dbal_mysql extends dbal
if (version_compare($this->mysql_version, '4.1.3', '>='))
{
@mysql_query("SET NAMES 'utf8'", $this->db_connect_id);
+ // enforce strict mode on databases that support it
+ if (version_compare($this->mysql_version, '5.0.2', '>='))
+ {
+ $result = @mysql_query('SELECT @@session.sql_mode AS sql_mode', $this->db_connect_id);
+ $row = @mysql_fetch_assoc($result);
+ @mysql_free_result($result);
+ $modes = array_map('trim', explode(',', $row['sql_mode']));
+
+ // TRADITIONAL includes STRICT_ALL_TABLES and STRICT_TRANS_TABLES
+ if (!in_array('TRADITIONAL', $modes))
+ {
+ if (!in_array('STRICT_ALL_TABLES', $modes))
+ {
+ $modes[] = 'STRICT_ALL_TABLES';
+ }
+
+ if (!in_array('STRICT_TRANS_TABLES', $modes))
+ {
+ $modes[] = 'STRICT_TRANS_TABLES';
+ }
+ }
+
+ $mode = implode(',', $modes);
+ @mysql_query("SET SESSION sql_mode='{$mode}'", $this->db_connect_id);
+ }
}
else if (version_compare($this->mysql_version, '4.0.0', '<'))
{