diff options
| author | czaks <marcin@6irc.net> | 2013-07-31 02:30:44 -0400 |
|---|---|---|
| committer | czaks <marcin@6irc.net> | 2013-07-31 02:30:44 -0400 |
| commit | 96bcf5dd1e8e09bce46c80291a24562d64ebc8dc (patch) | |
| tree | 3721653471b6586c6fb7c09d4100810c6b419faa /inc/database.php | |
| parent | 793042ee6ccd2fd1770c68ed55bfb1f58f2bf185 (diff) | |
| parent | b22bcdecf9cce8b08c48283290173996b6c8abf2 (diff) | |
Merge branch 'master' of https://github.com/savetheinternet/Tinyboard
Conflicts:
inc/functions.php
inc/mod/pages.php
install.php
js/expand.js
mod.php
Diffstat (limited to 'inc/database.php')
| -rw-r--r-- | inc/database.php | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/inc/database.php b/inc/database.php index a0edd1fb..3dc0f0ce 100644 --- a/inc/database.php +++ b/inc/database.php @@ -51,12 +51,16 @@ function sql_open() { try { $options = array( PDO::ATTR_TIMEOUT => $config['db']['timeout'], - PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8', PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true ); if ($config['db']['persistent']) $options[PDO::ATTR_PERSISTENT] = true; - return $pdo = new PDO($dsn, $config['db']['user'], $config['db']['password'], $options); + $pdo = new PDO($dsn, $config['db']['user'], $config['db']['password'], $options); + if (mysql_version() >= 50503) + query('SET NAMES utf8mb4') or error(db_error()); + else + query('SET NAMES utf8') or error(db_error()); + return $pdo; } catch(PDOException $e) { $message = $e->getMessage(); @@ -65,10 +69,21 @@ function sql_open() { $message = str_replace($config['db']['password'], '<em>hidden</em>', $message); // Print error - error('Database error: ' . $message); + error(_('Database error: ') . $message); } } +// 5.6.10 becomes 50610 +function mysql_version() { + global $pdo; + + $version = $pdo->getAttribute(PDO::ATTR_SERVER_VERSION); + $v = explode('.', $version); + if (count($v) != 3) + return false; + return (int) sprintf("%02d%02d%02d", $v[0], $v[1], $v[2]); +} + function prepare($query) { global $pdo, $debug, $config; |
