diff options
author | David M <davidmj@users.sourceforge.net> | 2007-08-14 12:27:35 +0000 |
---|---|---|
committer | David M <davidmj@users.sourceforge.net> | 2007-08-14 12:27:35 +0000 |
commit | 8ab583dce0d0a266eb6f229f1a6afa4b72c70803 (patch) | |
tree | 5fa7f32dafada596fbb162f7fbc95e3cb139b083 /phpBB/includes/db/mysqli.php | |
parent | 0c948afde2f5cfbdf35a041f870c9bad175644cb (diff) | |
download | forums-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/mysqli.php')
-rw-r--r-- | phpBB/includes/db/mysqli.php | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/phpBB/includes/db/mysqli.php b/phpBB/includes/db/mysqli.php index 660188d1c7..320171e852 100644 --- a/phpBB/includes/db/mysqli.php +++ b/phpBB/includes/db/mysqli.php @@ -45,6 +45,31 @@ class dbal_mysqli extends dbal if ($this->db_connect_id && $this->dbname != '') { @mysqli_query($this->db_connect_id, "SET NAMES 'utf8'"); + // enforce strict mode on databases that support it + if (mysqli_get_server_version($this->db_connect_id) >= 50002) + { + $result = @mysqli_query($this->db_connect_id, 'SELECT @@session.sql_mode AS sql_mode'); + $row = @mysqli_fetch_assoc($result); + @mysqli_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); + @mysqli_query($this->db_connect_id, "SET SESSION sql_mode='{$mode}'"); + } return $this->db_connect_id; } @@ -314,7 +339,7 @@ class dbal_mysqli extends dbal if (strpos(mysqli_get_server_info($this->db_connect_id), 'community') !== false) { $ver = mysqli_get_server_version($this->db_connect_id); - if ($ver >= 50037 && $ver < 51000) + if ($ver >= 50037 && $ver < 50100) { $test_prof = true; } |