From 670d377b168920cbef42ca4ce6e583542c8788a9 Mon Sep 17 00:00:00 2001 From: Florian Schaal Date: Thu, 2 Jul 2015 16:07:32 +0200 Subject: [PATCH] check sql-mode during install and setup --- install/lib/installer_base.lib.php | 5 +++++ install/lib/update.lib.php | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php index edeb215d5..76e721b24 100644 --- a/install/lib/installer_base.lib.php +++ b/install/lib/installer_base.lib.php @@ -181,6 +181,11 @@ class installer_base { public function configure_database() { global $conf; + //* check sql-mode + $check_sql_mode = $this->db->queryOneRecord("SELECT @@sql_mode"); + + if ($check_sql_mode['@@sql_mode'] != '' && $check_sql_mode['@@sql_mode'] != 'NO_ENGINE_SUBSTITUTION') die('Wrong SQL-mode. You should use NO_ENGINE_SUBSTITUTION'); + //** Create the database if(!$this->db->query('CREATE DATABASE IF NOT EXISTS ?? DEFAULT CHARACTER SET ?', $conf['mysql']['database'], $conf['mysql']['charset'])) { $this->error('Unable to create MySQL database: '.$conf['mysql']['database'].'.'); diff --git a/install/lib/update.lib.php b/install/lib/update.lib.php index 1813a19a2..9fb57cb65 100644 --- a/install/lib/update.lib.php +++ b/install/lib/update.lib.php @@ -123,6 +123,10 @@ function checkDbHealth() { function updateDbAndIni() { global $inst, $conf; + //* check sql-mode + $check_sql_mode = $inst->db->queryOneRecord("SELECT @@sql_mode"); + if ($check_sql_mode['@@sql_mode'] != '' && $check_sql_mode['@@sql_mode'] != 'NO_ENGINE_SUBSTITUTION') die('Wrong SQL-mode. You should use NO_ENGINE_SUBSTITUTION'); + //* Update $conf array with values from the server.ini that shall be preserved $tmp = $inst->db->queryOneRecord("SELECT * FROM ?? WHERE server_id = ?", $conf["mysql"]["database"] . '.server', $conf['server_id']); $ini_array = ini_to_array(stripslashes($tmp['config'])); -- GitLab