diff --git a/htdocs/admin/system/database.php b/htdocs/admin/system/database.php index 365cfaa449d..ff7a16d1893 100644 --- a/htdocs/admin/system/database.php +++ b/htdocs/admin/system/database.php @@ -88,7 +88,7 @@ else { $arraytest=array( 'character_set_database'=>array('var'=>'dolibarr_main_db_character_set','valifempty'=>'utf8'), - 'collation_database'=>array('var'=>'dolibarr_main_db_collation','valifempty'=>'utf8_general_ci') + 'collation_database'=>array('var'=>'dolibarr_main_db_collation','valifempty'=>'utf8_unicode_ci') ); } diff --git a/htdocs/conf/conf.php.example b/htdocs/conf/conf.php.example index aab5290a663..ca7681a17b4 100644 --- a/htdocs/conf/conf.php.example +++ b/htdocs/conf/conf.php.example @@ -146,9 +146,9 @@ $dolibarr_main_db_character_set='utf8'; // Database character set used to sort data (forced during database creation). // Default value: depends on database driver // Examples: -// dolibarr_main_db_collation='utf8_general_ci'; +// dolibarr_main_db_collation='utf8_unicode_ci'; // -$dolibarr_main_db_collation='utf8_general_ci'; +$dolibarr_main_db_collation='utf8_unicode_ci'; diff --git a/htdocs/core/db/DoliDB.class.php b/htdocs/core/db/DoliDB.class.php index b8038056484..c63227e1601 100644 --- a/htdocs/core/db/DoliDB.class.php +++ b/htdocs/core/db/DoliDB.class.php @@ -36,7 +36,7 @@ abstract class DoliDB implements Database /** @var string Charset used to force charset when creating database */ public $forcecharset='utf8'; /** @var string Collate used to force collate when creating database */ - public $forcecollate='utf8_general_ci'; + public $forcecollate='utf8_unicode_ci'; /** @var resource Resultset of last query */ private $_results; /** @var bool true if connected, else false */ diff --git a/htdocs/filefunc.inc.php b/htdocs/filefunc.inc.php index e7f407acfd2..7a852704f9c 100644 --- a/htdocs/filefunc.inc.php +++ b/htdocs/filefunc.inc.php @@ -149,7 +149,7 @@ if (empty($dolibarr_main_db_type)) $dolibarr_main_db_type='mysqli'; // Pour comp if ($dolibarr_main_db_type == 'mysql') $dolibarr_main_db_type = 'mysqli'; if (empty($dolibarr_main_db_prefix)) $dolibarr_main_db_prefix='llx_'; if (empty($dolibarr_main_db_character_set)) $dolibarr_main_db_character_set=($dolibarr_main_db_type=='mysqli'?'utf8':''); // Old installation -if (empty($dolibarr_main_db_collation)) $dolibarr_main_db_collation=($dolibarr_main_db_type=='mysqli'?'utf8_general_ci':''); // Old installation +if (empty($dolibarr_main_db_collation)) $dolibarr_main_db_collation=($dolibarr_main_db_type=='mysqli'?'utf8_unicode_ci':''); // Old installation if (empty($dolibarr_main_db_encryption)) $dolibarr_main_db_encryption=0; if (empty($dolibarr_main_db_cryptkey)) $dolibarr_main_db_cryptkey=''; if (empty($dolibarr_main_limit_users)) $dolibarr_main_limit_users=0; diff --git a/htdocs/install/inc.php b/htdocs/install/inc.php index 1a83665d99c..eb7e77cfc24 100644 --- a/htdocs/install/inc.php +++ b/htdocs/install/inc.php @@ -151,7 +151,7 @@ define('DOL_URL_ROOT', $suburi); // URL relative root ('', '/dolibarr', ...) if (empty($conf->file->character_set_client)) $conf->file->character_set_client="UTF-8"; if (empty($conf->db->character_set)) $conf->db->character_set='utf8'; -if (empty($conf->db->dolibarr_main_db_collation)) $conf->db->dolibarr_main_db_collation='utf8_general_ci'; +if (empty($conf->db->dolibarr_main_db_collation)) $conf->db->dolibarr_main_db_collation='utf8_unicode_ci'; if (empty($conf->db->dolibarr_main_db_encryption)) $conf->db->dolibarr_main_db_encryption=0; if (empty($conf->db->dolibarr_main_db_cryptkey)) $conf->db->dolibarr_main_db_cryptkey=''; if (empty($conf->db->user)) $conf->db->user=''; @@ -300,11 +300,13 @@ function conf($dolibarr_main_document_root) $conf->db->user = trim($dolibarr_main_db_user); $conf->db->pass = trim($dolibarr_main_db_pass); + // Mysql driver support has been removed in favor of mysqli + if ($conf->db->type == 'mysql') $conf->db->type = 'mysqli'; if (empty($character_set_client)) $character_set_client="UTF-8"; $conf->file->character_set_client=strtoupper($character_set_client); - if (empty($dolibarr_main_db_character_set)) $dolibarr_main_db_character_set=($conf->db->type=='mysql'?'latin1':''); // With old installation, var is not defined. New one, constant should be set to utf8 + if (empty($dolibarr_main_db_character_set)) $dolibarr_main_db_character_set=($conf->db->type=='mysqli'?'utf8':''); $conf->db->character_set=$dolibarr_main_db_character_set; - if (empty($dolibarr_main_db_collation)) $dolibarr_main_db_collation=($conf->db->type=='mysql'?'latin1_swedish_ci':''); // With old installation, var is not defined. New one, constant should be set to utf8_general_ci + if (empty($dolibarr_main_db_collation)) $dolibarr_main_db_collation=($conf->db->type=='mysqli'?'utf8_unicode_ci':''); $conf->db->dolibarr_main_db_collation=$dolibarr_main_db_collation; if (empty($dolibarr_main_db_encryption)) $dolibarr_main_db_encryption=0; $conf->db->dolibarr_main_db_encryption = $dolibarr_main_db_encryption; diff --git a/htdocs/support/inc.php b/htdocs/support/inc.php index 2db312ee630..869dace222d 100644 --- a/htdocs/support/inc.php +++ b/htdocs/support/inc.php @@ -184,7 +184,7 @@ function conf($dolibarr_main_document_root) $conf->db->user = trim($dolibarr_main_db_user); $conf->db->pass = trim($dolibarr_main_db_pass); - if (empty($conf->db->dolibarr_main_db_collation)) $conf->db->dolibarr_main_db_collation='utf8_general_ci'; + if (empty($conf->db->dolibarr_main_db_collation)) $conf->db->dolibarr_main_db_collation='utf8_unicode_ci'; return 1; }