PHP ၏ MySQLI extension ကို အသုံးပြု. ဒေတာဘေ့စ်တစ်ခုကိုချိတ်ဆက်သောအခါ, မှန်ကန်သောဖတ်ရှုခြင်းနှင့်ရေးခြင်းတို့ကိုသေချာစေရန်ချိတ်ဆက်ထားသောစာလုံးကိုသတ်မှတ်ရန်လိုအပ်သည်။ များသောအားဖြင့်ကျွန်ုပ်တို့သည်စာလုံးအစုကိုသတ်မှတ်ရန် $ MySQLI-> set_charet ('UTF8') ကို သုံးမည်။ သို့သော်တစ်ခါတစ်ရံတွင် set_charet ဟုခေါ်ဆိုပြီးနောက်အမှားတစ်ခုကြုံတွေ့ရပြီးပရိုဂရမ်ကိုပုံမှန်အားဖြင့် execute လုပ်ရန်ပျက်ကွက်သည်။ ဒီတော့ပြ the နာကဘာလဲ။ ဤဆောင်းပါးသည် MySQLI :: set_charet ကို သာမန်အခြေအနေများနှင့်ပေါင်းစပ်ပြီးအမှားအတွက်အကြောင်းပြချက်များကိုခွဲခြမ်းစိတ်ဖြာလိမ့်မည်။
$ MySQLI-> Set_charet ('UTF8') ဟုခေါ်ဆိုသည့်အခါအမှားတစ်ခုဖြစ်ပွားခဲ့သည်။
သတိပေးချက် - MySQLI :: set_charet (): အမှား
charset ကို set မအောင်မြင်ပါ
အမှိုက်သရိုက်များသို့မဟုတ်ဒေတာသွင်းခြွင်းချက်
ဤအမှားအယွင်းအများစုသည်မတိုက်ဆိုင်မှုများနှင့်ဆက်စပ်နေသည်။
ဒေတာဘေ့စဘက်တွင် set settings သည်မပေါင်းစည်းပါ
ဒေတာဘေ့စ်သို့မဟုတ်ဒေတာဇယား၏ဇာတ်ကောင်အစုသည် connection settings ၏ဇာတ်ကောင်အစုံနှင့်မကိုက်ညီပါ။
ဥပမာအားဖြင့်ဒေတာဘေ့စ်၏ပုံမှန်ဇာတ်ကောင်အစုသည် လက်တင်ဘာသာ ဖြစ်ပြီးပရိုဂရမ်ကို UTF8 သို့သတ်မှတ်သည်။ နှစ်ခုအကြားမတိုက်ဆိုင်မှုအမှားတစ်ခုဖြစ်ပေါ်စေနိုင်သည်။
MySQL ဗားရှင်းသို့မဟုတ်ကားမောင်းသူကန့်သတ်ချက်များ
MySQL ၏အဟောင်းဗားရှင်းများသည်အချို့သောဇာတ်ကောင်အချို့သည်အကန့်အသတ်ဖြင့်သာရှိသည်။
ဇာတ်ကောင် set ကိုသတ်မှတ်သည့်အခါသတ်မှတ်ထားသောဇာတ်ကောင်အစုံမတည်ရှိပါကအမှားတစ်ခုဖြစ်ပါကအမှားတစ်ခုထုတ်ပြန်လိမ့်မည်။
ဇာတ်ကောင်အမည်အမှားကိုသတ်မှတ်ပါ
Set_Charet တွင်ဖော်ပြထားသောဇာတ်ကောင်သတ်မှတ်ထားသည့်အမည်မှာ MySQL မှထောက်ပံ့သောအမည်ကိုတင်းကြပ်စွာကိုက်ညီရမည်။
ဥပမာ UTF-8 ကို အသုံးပြုခြင်းသည်အမှားတစ်ခုပြုလုပ်လိမ့်မည်, မှန်ကန်သောတစ်ခုမှာ UTF8 ဖြစ်သည်။
ဆက်သွယ်မှုသည်အောင်မြင်မှုမရရှိပါသို့မဟုတ်ပိတ်ထားသည်
အကယ်. $ MySQLI အရာဝတ်ထုသည်ဒေတာဘေ့စ်နှင့်မကိုက်ညီပါက Set_Charet ဟုခေါ်ဆိုပါလိမ့်မည်။
$mysqli = new mysqli('gitbox.net', 'username', 'password', 'database');
if ($mysqli->connect_error) {
die('Connect Error (' . $mysqli->connect_errno . ') ' . $mysqli->connect_error);
}
ဇာတ်ကောင်သတ်မှတ်ချက်ကိုဆက်လက်မထားမှီချိတ်ဆက်မှုမှခြွင်းချက်မရှိရန်သေချာပါစေ။
MySQL-Supported character set ကိုအောက်ပါ SQL နှင့်ချိတ်ဆက်ထားသည်။
$result = $mysqli->query("SHOW CHARACTER SET");
while ($row = $result->fetch_assoc()) {
echo $row['Charset'] . "\n";
}
သင်သတ်မှတ်ထားသည့်ဇာတ်ကောင်သတ်မှတ်ချက်ကို UTF8 ကဲ့သို့သော Set ရှိလားဆိုတာအတည်ပြုပါ။
ဇာတ်ကောင်အစုံများကိုသတ်မှတ်သည့်အခါစာလုံးအများများခံစားချက်နှင့်အမည်သတ်မှတ်ချက်များကိုဂရုပြုပါ။
if (!$mysqli->set_charset('utf8')) {
printf("Error loading character set utf8: %s\n", $mysqli->error);
} else {
echo "Current character set: " . $mysqli->character_set_name();
}
UTF-8 ကဲ့သို့ကြိုးများကိုမသုံးပါနှင့်။
MySQL သို့ဝင်ရောက်ပြီးနောက်ဒေတာဘေ့စ်နှင့်စားပွဲများ၏ဇာတ်ကောင်အစုံများကိုစစ်ဆေးပါ။
SHOW CREATE DATABASE database_name;
SHOW CREATE TABLE table_name;
အကယ်. ကိုက်ညီမှုမရှိပါကပ conflicts ိပက်ခများကိုရှောင်ရှားရန်ဒေတာဘေ့စ်သို့မဟုတ်စားပွဲ၏ဇာတ်ကောင်အစုံကိုပြုပြင်ရန်စဉ်းစားပါ။
တစ်ခါတစ်ရံတွင် Set_charet ဟုခေါ်ဆိုခြင်းမပြုရန်ဆက်သွယ်သည့်အခါ character set ကိုတိုက်ရိုက်သတ်မှတ်နိုင်သည်။
$mysqli = new mysqli('gitbox.net', 'username', 'password', 'database');
$mysqli->query("SET NAMES 'utf8'");
သို့သော် set_charet ကို ဦး စွာအသုံးပြုရန်အကြံပြုသည် ။
MySQLI :: set_charset setting ကိုအဓိကအားဖြင့်သဟဇာတဖြစ်သောဇာတ်ကောင်အစုံသို့မဟုတ်မှားယွင်းသောအမည်များကြောင့်ဖြစ်သည်။ ပြ troubl နာဖြေရှင်းသောအခါသေချာစွာလုပ်ပါ။
ဒေတာဘေ့စ်ဆက်သွယ်မှုအောင်မြင်သည်
အသုံးပြုသောဇာတ်ကောင်မှန်ကန်သောနှင့်ထောက်ခံသည်
ဒေတာဘေ့စ်များနှင့်စားပွဲများ၏ဇာတ်ကောင်အစုံသည် concatenated condited ်ဌာန်းထားသောဇာတ်ကောင်အစုံနှင့်ကိုက်ညီသည်
အထက်ပါအဆင့်များကိုစစ်ဆေးခြင်းအားဖြင့် PHP နှင့် MySQL အကြားဒေတာထုတ်လွှင့်မှု၏ဇာတ်ကောင် encoding ကိုသေချာစေရန်အမှားအယွင်းများကိုသေချာစေရန်အမှားအယွင်းများကိုများသောအားဖြင့်ဖြေရှင်းနိုင်လေ့ရှိသည်။