dbQuery("SET GLOBAL sql_mode='ONLY_FULL_GROUP_BY,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'");
$collation=dbFetchRows("SELECT DEFAULT_CHARACTER_SET_NAME, DEFAULT_COLLATION_NAME FROM information_schema.SCHEMATA S WHERE schema_name = '".$config['db_name']."' AND ( DEFAULT_CHARACTER_SET_NAME != 'utf8' OR DEFAULT_COLLATION_NAME != 'utf8_unicode_ci')");
if(isset($collation[0])){
$error=implode(' ',$collation[0]);
}else{
$error='';
}
$this->assertEmpty($collation,'Wrong Database Collation or Character set: '.$error);
}
}
publicfunctiontestCheckTableCollation()
{
global$config;
if(getenv('DBTEST')){
$collation=dbFetchRows("SELECT T.TABLE_NAME, C.CHARACTER_SET_NAME, C.COLLATION_NAME FROM information_schema.TABLES AS T, information_schema.COLLATION_CHARACTER_SET_APPLICABILITY AS C WHERE C.collation_name = T.table_collation AND T.table_schema = '".$config['db_name']."' AND ( C.CHARACTER_SET_NAME != 'utf8' OR C.COLLATION_NAME != 'utf8_unicode_ci' );");
$error='';
foreach($collationas$id=>$data){
$error.=implode(' ',$data).PHP_EOL;
}
$this->assertEmpty($collation,'Wrong Table Collation or Character set: '.$error);
}
}
publicfunctiontestCheckColumnCollation()
{
global$config;
if(getenv('DBTEST')){
$collation=dbFetchRows("SELECT TABLE_NAME, COLUMN_NAME, CHARACTER_SET_NAME, COLLATION_NAME FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = '".$config['db_name']."' AND ( CHARACTER_SET_NAME != 'utf8' OR COLLATION_NAME != 'utf8_unicode_ci' );");
$error='';
foreach($collationas$id=>$data){
$error.=implode(' ',$data).PHP_EOL;
}
$this->assertEmpty($collation,'Wrong Column Collation or Character set: '.$error);