diff options
author | plegall <plg@piwigo.org> | 2016-07-26 15:54:22 +0200 |
---|---|---|
committer | plegall <plg@piwigo.org> | 2016-07-26 15:54:22 +0200 |
commit | b87094ac2f502b31b8650c371c01b74b894df50e (patch) | |
tree | 2f1988bd06458f536b6fef8b34d140cbb09cce47 /include | |
parent | 374f341d0bbc7601dac82b60e637aeadf2218938 (diff) |
fixes #376, remove option ONLY_FULL_GROUP_BY in sql_mode
based on solution provided by Mercury_LABBS on piwigo.org forums
Diffstat (limited to 'include')
-rw-r--r-- | include/dblayer/functions_mysqli.inc.php | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/include/dblayer/functions_mysqli.inc.php b/include/dblayer/functions_mysqli.inc.php index 5b40cfe5b..f0bca9be6 100644 --- a/include/dblayer/functions_mysqli.inc.php +++ b/include/dblayer/functions_mysqli.inc.php @@ -73,6 +73,19 @@ function pwg_db_connect($host, $user, $password, $database) { throw new Exception('Connection to server succeed, but it was impossible to connect to database'); } + + // MySQL 5.7 default settings forbid to select a colum that is not in the + // group by. We've use that in Piwigo, for years. As an immediate solution + // we can remove this constraint in the current MySQL session. + list($sql_mode_current) = pwg_db_fetch_row(pwg_query('SELECT @@SESSION.sql_mode')); + + // remove ONLY_FULL_GROUP_BY from the list + $sql_mode_altered = implode(',', array_diff(explode(',', $sql_mode_current), array('ONLY_FULL_GROUP_BY'))); + + if ($sql_mode_altered != $sql_mode_current) + { + pwg_query("SET SESSION sql_mode='".$sql_mode_altered."'"); + } } /** |