Set the charset for the SQL connection for new installations

This commit is contained in:
Michael Vogel 2016-09-01 03:50:41 +00:00
parent 1bfe7b432a
commit 9209d88c4a
3 changed files with 29 additions and 4 deletions

View file

@ -16,6 +16,11 @@ $db_user = 'mysqlusername';
$db_pass = 'mysqlpassword'; $db_pass = 'mysqlpassword';
$db_data = 'mysqldatabasename'; $db_data = 'mysqldatabasename';
// Set the database connection charset to UTF8.
// Changing this value will likely corrupt the special characters.
// You have been warned.
$a->config['system']['db_charset'] = "utf8mb4";
// Choose a legal default timezone. If you are unsure, use "America/Los_Angeles". // Choose a legal default timezone. If you are unsure, use "America/Los_Angeles".
// It can be changed later and only applies to timestamps for anonymous viewers. // It can be changed later and only applies to timestamps for anonymous viewers.

View file

@ -66,6 +66,8 @@ class dba {
if(! mysqli_connect_errno()) { if(! mysqli_connect_errno()) {
$this->connected = true; $this->connected = true;
} }
if (isset($a->config["system"]["db_charset"]))
$this->db->set_charset($a->config["system"]["db_charset"]);
} }
else { else {
$this->mysqli = false; $this->mysqli = false;
@ -73,6 +75,8 @@ class dba {
if($this->db && mysql_select_db($db,$this->db)) { if($this->db && mysql_select_db($db,$this->db)) {
$this->connected = true; $this->connected = true;
} }
if (isset($a->config["system"]["db_charset"]))
mysql_set_charset($a->config["system"]["db_charset"], $this->db);
} }
if(! $this->connected) { if(! $this->connected) {
$this->db = null; $this->db = null;
@ -95,6 +99,14 @@ class dba {
$this->error = ''; $this->error = '';
// Check the connection (This can reconnect the connection - if configured)
if ($this->mysqli)
$connected = $this->db->ping();
else
$connected = mysql_ping($this->db);
$connstr = ($connected ? "Connected": "Disonnected");
$stamp1 = microtime(true); $stamp1 = microtime(true);
if($this->mysqli) if($this->mysqli)
@ -122,14 +134,17 @@ class dba {
} }
if($this->mysqli) { if($this->mysqli) {
if($this->db->errno) if($this->db->errno) {
$this->error = $this->db->error; $this->error = $this->db->error;
$this->errorno = $this->db->errno;
} }
elseif(mysql_errno($this->db)) } elseif(mysql_errno($this->db)) {
$this->error = mysql_error($this->db); $this->error = mysql_error($this->db);
$this->errorno = mysql_errno($this->db);
}
if(strlen($this->error)) { if(strlen($this->error)) {
logger('dba: ' . $this->error); logger('DB Error ('.$connstr.') '.$this->errorno.': '.$this->error);
} }
if($this->debug) { if($this->debug) {

View file

@ -15,6 +15,11 @@ $db_user = '{{$dbuser}}';
$db_pass = '{{$dbpass}}'; $db_pass = '{{$dbpass}}';
$db_data = '{{$dbdata}}'; $db_data = '{{$dbdata}}';
// Set the database connection charset to UTF8.
// Changing this value will likely corrupt the special characters.
// You have been warned.
$a->config['system']['db_charset'] = "utf8mb4";
// email adress for the system admin // email adress for the system admin
$a->config['admin_email'] = '{{$adminmail}}'; $a->config['admin_email'] = '{{$adminmail}}';