PHP ကို အသုံးပြု. ဒေတာဘေ့စ်များကိုချိတ်ဆက်သောအခါ, သင်သည်တရုတ်ဆံပင်အိတ်ကုဒ်များနှင့်ပြ problems နာများကိုမကြာခဏကြုံတွေ့ရလေ့ရှိသည်။ ကိစ္စရပ်အများစုတွင်ဤညစ်ညမ်းသော code မျိုးသည်ဒေတာဘေ့စ်နှင့်ချိတ်ဆက်သောအခါအက်ခရာ encoding ကိုစနစ်တကျမသတ်မှတ်ခြင်းကြောင့်ဖြစ်သည်။ အထူးသဖြင့် Database connection တစ်ခုတည်ဆောက်ရန် Connection function ကိုခေါ်ဆိုသည့်အခါ encoding settings ကိုလျစ်လျူရှုထားပါက,
ဤဆောင်းပါးသည်ဒေတာဘေ့စ်ချိတ်ဆက်သောအခါမှန်ကန်သောဇာတ်ကောင် encoding ကိုသေချာစေရန် Connect ၏ကုဒ်နံပါတ်ကိုမည်သို့ညှိနှိုင်းရမည်ကိုအသေးစိတ်မိတ်ဆက်ပေးပါမည်။
Developer အများအပြားသည်ဒေတာဘေ့စ်နှင့်တိုက်ရိုက်ချိတ်ဆက်ရန်အောက်ပါကဲ့သို့သောကုဒ်များကို အသုံးပြု. လေ့ကျင့်ထားလေ့ရှိသည် -
$mysqli = new mysqli('db.m66.net', 'username', 'password', 'database');
အကယ်. ဤဆက်သွယ်မှုနည်းလမ်းသည်ဇာတ်ကောင်ကိုမသတ်မှတ်ပါက Database မှအသုံးပြုသော encoding သည်လက်တင် (1) သို့မဟုတ်အခြား encloading ကဲ့သို့သော utf-8 ကဲ့သို့သောလက်တင်မြို့သို့မဟုတ်အခြား encodings များကဲ့သို့သော carble codes များဖြစ်ပေါ်လာသည်။
ကျောက်တုံးများပြ problem နာကိုဖြေရှင်းရန်အဓိကအချက်မှာ Database connection အောင်မြင်ပြီးနောက် Time_charet ဟုခေါ်ဆိုရန်သို့မဟုတ် ExCH8 အမည်များကို Execute ဟုခေါ်သည်။ ဤနည်းအားဖြင့်ဒေတာဘေ့စ်နှင့် PHP အကြားဒေတာထုတ်လွှင့်မှုများကို UTF-8 အဆိုအရတရုတ်စာလုံးများကိုမှားယွင်းစွာမစီရင်စေရန်အတွက် UTF-8 အဆိုအရဆောင်ရွက်လိမ့်မည်။
သင်၌ဒေတာဘေ့စ်ဆက်သွယ်မှုများကိုဖန်တီးပေးသော Encapsulated Connect function တစ်ခုရှိသည်ဆိုပါစို့။ နမူနာကုဒ်သည်အောက်ပါအတိုင်းဖြစ်သည် -
function connect() {
$mysqli = new mysqli('m66.net', 'username', 'password', 'database');
if ($mysqli->connect_errno) {
die('ဆက်သွယ်မှုမအောင်မြင်ပါ: ' . $mysqli->connect_error);
}
// အဓိကခြေလှမ်းများ:ဇာတ်ကောင် encoding ကိုသတ်မှတ်ပါUTF-8
$mysqli->set_charset('utf8');
return $mysqli;
}
ဒီမှာအချက်ကတော့
Database Domain Name ကို M66.net ဖြင့်အစားထိုးပါ။
ဆက်သွယ်မှုအောင်မြင်ပြီးနောက် encoding မှန်ကန်ကြောင်းသေချာစေရန် $ MySQLI-> set_charet ('UTF8') ကိုခေါ်ပါ။
အကယ်. သင်သည် MySQLI_Connect function ကိုအသုံးပြုနေပါက၎င်းကိုသင်ရေးနိုင်သည်။
function connect() {
$link = mysqli_connect('m66.net', 'username', 'password', 'database');
if (!$link) {
die('ဆက်သွယ်မှုမအောင်မြင်ပါ: ' . mysqli_connect_error());
}
// အက်ခရာ encoding set
mysqli_set_charset($link, 'utf8');
return $link;
}
အလားတူပင် MySQLI_SESSESSSet_charet function ကိုခေါ်ဆိုပါ။
အကယ်. သင်သည် PDO ဆက်သွယ်မှုကိုအသုံးပြုနေပါက DSN တွင် Charset = UTF8 မှအကောင်အထည်ဖော်နိုင်သည့်ဇာတ်ကောင်အစုံကိုလည်းသတ်မှတ်ရန်လိုအပ်သည်။
$dsn = 'mysql:host=m66.net;dbname=database;charset=utf8';
$pdo = new PDO($dsn, 'username', 'password');
SQL command များကိုလည်းအကောင်အထည်ဖော်နိုင်သည်။
$mysqli->query("SET NAMES 'utf8'");
သို့သော် set_charet နည်းလမ်းသည်ပိုမိုတိကျသောနှင့်ယုံကြည်စိတ်ချရသောကြောင့်ပိုမိုအကြံပြုသည်။