Difference between revisions of "Change Database Collation"
(→DBCONFIG.PHP Modification) |
(→DBCONFIG.PHP Modification) |
||
Line 123: | Line 123: | ||
} <br /> | } <br /> | ||
</code><br /> | </code><br /> | ||
− | Add the following line above ''return $db_connect;'' <br /> | + | Add the following line above ''return $db_connect;'': <br /> |
'''mysql_query("SET NAMES 'latin5' COLLATE 'latin5_turkish_ci'");''' <br /> | '''mysql_query("SET NAMES 'latin5' COLLATE 'latin5_turkish_ci'");''' <br /> | ||
<br /> | <br /> |
Revision as of 23:49, February 9, 2009
Some languages require the Database collation to be changed in order to display characters correctly. You will find instructions here on how to change your database collation and configure AWBS to work correctly with this change.
Contents
Converting the Database
Copy and paste the example below into a new text file. Give this file a name of convertdb.php (or anything that you will remember, but with the .php extension)
Example:
<?php
$DIR=(dirname(__FILE__));
require($DIR."/../includes/dbconfig.php");
include($workdir."/includes/sessions.php");
include_once($workdir."/config.php");
$tables = mysql_list_tables($dbdatabase);
while (list($table) = mysql_fetch_row($tables)) {
sqlwritesingle("ALTER TABLE $table CONVERT TO CHARACTER SET latin5 COLLATE latin5_turkish_ci;");
echo "$table - DONE<br />";flush();ob_flush();
}
?>
Edit this line in the script to the correct character set and collation for your language:
sqlwritesingle("ALTER TABLE $table CONVERT TO CHARACTER SET latin5 COLLATE latin5_turkish_ci;");
Once satisfied with the changes. Save and upload the file to the tools folder of your AWBS Website.
At this point it is strongly suggested to backup your database.
To proceed with converting the database, open a web browser and open the url to your file you just uploaded.
For Example: http://www.yoursite.com/tools/convertdb.php
You should receive output on your screen informing you if the changes are successful.
mySQL Character Sets and Collation Table
Charset | Description | Default collation |
---|---|---|
big5 | Big5 Traditional Chinese | big5_chinese_ci |
dec8 | DEC West European | dec8_swedish_ci |
cp850 | DOS West European | cp850_general_ci |
hp8 | HP West European | hp8_english_ci |
koi8r | KOI8-R Relcom Russian | koi8r_general_ci |
latin1 | cp1252 West European | latin1_swedish_ci |
latin2 | ISO 8859-2 Central European | latin2_general_ci |
swe7 | 7bit Swedish | swe7_swedish_ci |
ascii | US ASCII | ascii_general_ci |
ujis | EUC-JP Japanese | ujis_japanese_ci |
sjis | Shift-JIS Japanese | sjis_japanese_ci |
hebrew | ISO 8859-8 Hebrew | hebrew_general_ci |
tis620 | TIS620 Thai | tis620_thai_ci |
euckr | EUC-KR Korean | euckr_korean_ci |
koi8u | KOI8-U Ukrainian | koi8u_general_ci |
gb2312 | GB2312 Simplified Chinese | gb2312_chinese_ci |
greek | ISO 8859-7 Greek | greek_general_ci |
cp1250 | Windows Central European | cp1250_general_ci |
gbk | GBK Simplified Chinese | gbk_chinese_ci |
latin5 | ISO 8859-9 Turkish | latin5_turkish_ci |
armscii8 | ARMSCII-8 Armenian | armscii8_general_ci |
utf8 | UTF-8 Unicode | utf8_general_ci |
ucs2 | UCS-2 Unicode | ucs2_general_ci |
cp866 | DOS Russian | cp866_general_ci |
keybcs2 | DOS Kamenicky Czech-Slovak | keybcs2_general_ci |
macce | Mac Central European | macce_general_ci |
macroman | Mac West European | macroman_general_ci |
cp852 | DOS Central European | cp852_general_ci |
latin7 | ISO 8859-13 Baltic | latin7_general_ci |
cp1251 | Windows Cyrillic | cp1251_general_ci |
cp1256 | Windows Arabic | cp1256_general_ci |
cp1257 | Windows Baltic | cp1257_general_ci |
binary | Binary pseudo charset | binary |
geostd8 | GEOSTD8 Georgian | geostd8_general_ci |
cp932 | SJIS for Windows Japanese | cp932_japanese_ci |
eucjpms | UJIS for Windows Japanese | eucjpms_japanese_ci |
Extended System Configuration
DBCONFIG.PHP Modification
Make a backup of your /includes/dbconfig.php file.
Then edit your dbconfig file and look for the following lines:
function dbconnect(){
global $dbhost,$dbusername,$dbpassword,$dbdatabase;
$db_connect=@mysql_connect($dbhost,$dbusername,$dbpassword) or nosql();
@mysql_select_db($dbdatabase) or nosql();
return $db_connect;
}
Add the following line above return $db_connect;:
mysql_query("SET NAMES 'latin5' COLLATE 'latin5_turkish_ci'");
function dbconnect(){
global $dbhost,$dbusername,$dbpassword,$dbdatabase;
$db_connect=@mysql_connect($dbhost,$dbusername,$dbpassword) or nosql();
@mysql_select_db($dbdatabase) or nosql();
mysql_query("SET NAMES 'latin5' COLLATE 'latin5_turkish_ci'");
return $db_connect;
}