Patch: Patch gestion utf8 en base de donnée

This commit is contained in:
Laurent Destailleur 2006-05-09 00:16:56 +00:00
parent 6f71ce4713
commit fbdeff2700

View File

@ -41,6 +41,8 @@ class DoliDb
{ {
var $db; // Handler de base var $db; // Handler de base
var $type='mysql'; // Nom du gestionnaire var $type='mysql'; // Nom du gestionnaire
var $forcecharset='latin1';
var $forcecollate='latin1_swedish_ci';
var $results; // Resultset de la dernière requete var $results; // Resultset de la dernière requete
@ -56,6 +58,7 @@ class DoliDb
var $ok; var $ok;
var $error; var $error;
// Constantes pour conversion code erreur MySql en code erreur générique // Constantes pour conversion code erreur MySql en code erreur générique
var $errorcode_map = array( var $errorcode_map = array(
1004 => 'DB_ERROR_CANNOT_CREATE', 1004 => 'DB_ERROR_CANNOT_CREATE',
@ -120,6 +123,11 @@ class DoliDb
if ($this->db) if ($this->db)
{ {
// Si client connecté avec charset different de celui de Dolibarr
if (mysql_client_encoding ( $this->db ) != $this->forcecharset)
{
$this->query("SET NAMES '".$this->forcecharset."'", $this->db);
}
$this->connected = 1; $this->connected = 1;
$this->ok = 1; $this->ok = 1;
} }
@ -226,7 +234,7 @@ class DoliDb
*/ */
function create_db($database) function create_db($database)
{ {
$ret=$this->query('CREATE DATABASE '.$database); $ret=$this->query('CREATE DATABASE '.$database.' DEFAULT CHARACTER SET '.$this->forcecharset.' DEFAULT COLLATE '.$this->forcecollate);
//print "database=".$this->database_name." ret=".$ret." mysqlerror=".mysql_error($this->db); //print "database=".$this->database_name." ret=".$ret." mysqlerror=".mysql_error($this->db);
return $ret; return $ret;
} }