လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> MySQLI :: set_charset ကိုသုံးသောအခါအဘယ်ကြောင့်အချို့သောဇာတ်ကောင် sets မှားသွားကြသနည်း

MySQLI :: set_charset ကိုသုံးသောအခါအဘယ်ကြောင့်အချို့သောဇာတ်ကောင် sets မှားသွားကြသနည်း

gitbox 2025-06-05

PHP ၏ MySQLI extension ကို အသုံးပြု. ဒေတာဘေ့စ်တစ်ခုကိုချိတ်ဆက်သောအခါ, မှန်ကန်သောဖတ်ရှုခြင်းနှင့်ရေးခြင်းတို့ကိုသေချာစေရန်ချိတ်ဆက်ထားသောစာလုံးကိုသတ်မှတ်ရန်လိုအပ်သည်။ များသောအားဖြင့်ကျွန်ုပ်တို့သည်စာလုံးအစုကိုသတ်မှတ်ရန် $ MySQLI-> set_charet ('UTF8') ကို သုံးမည်။ သို့သော်တစ်ခါတစ်ရံတွင် set_charet ဟုခေါ်ဆိုပြီးနောက်အမှားတစ်ခုကြုံတွေ့ရပြီးပရိုဂရမ်ကိုပုံမှန်အားဖြင့် execute လုပ်ရန်ပျက်ကွက်သည်။ ဒီတော့ပြ the နာကဘာလဲ။ ဤဆောင်းပါးသည် MySQLI :: set_charet ကို သာမန်အခြေအနေများနှင့်ပေါင်းစပ်ပြီးအမှားအတွက်အကြောင်းပြချက်များကိုခွဲခြမ်းစိတ်ဖြာလိမ့်မည်။


1 ။ သာမန်အမှားများ

$ MySQLI-> Set_charet ('UTF8') ဟုခေါ်ဆိုသည့်အခါအမှားတစ်ခုဖြစ်ပွားခဲ့သည်။

  • သတိပေးချက် - MySQLI :: set_charet (): အမှား

  • charset ကို set မအောင်မြင်ပါ

  • အမှိုက်သရိုက်များသို့မဟုတ်ဒေတာသွင်းခြွင်းချက်

ဤအမှားအယွင်းအများစုသည်မတိုက်ဆိုင်မှုများနှင့်ဆက်စပ်နေသည်။


2 ။ ဇာတ်ကောင်များအတွက်အကြောင်းပြချက်များ၏ခွဲခြမ်းစိတ်ဖြာခြင်းသဟဇာတမ

  1. ဒေတာဘေ့စဘက်တွင် set settings သည်မပေါင်းစည်းပါ

    • ဒေတာဘေ့စ်သို့မဟုတ်ဒေတာဇယား၏ဇာတ်ကောင်အစုသည် connection settings ၏ဇာတ်ကောင်အစုံနှင့်မကိုက်ညီပါ။

    • ဥပမာအားဖြင့်ဒေတာဘေ့စ်၏ပုံမှန်ဇာတ်ကောင်အစုသည် လက်တင်ဘာသာ ဖြစ်ပြီးပရိုဂရမ်ကို UTF8 သို့သတ်မှတ်သည်။ နှစ်ခုအကြားမတိုက်ဆိုင်မှုအမှားတစ်ခုဖြစ်ပေါ်စေနိုင်သည်။

  2. MySQL ဗားရှင်းသို့မဟုတ်ကားမောင်းသူကန့်သတ်ချက်များ

    • MySQL ၏အဟောင်းဗားရှင်းများသည်အချို့သောဇာတ်ကောင်အချို့သည်အကန့်အသတ်ဖြင့်သာရှိသည်။

    • ဇာတ်ကောင် set ကိုသတ်မှတ်သည့်အခါသတ်မှတ်ထားသောဇာတ်ကောင်အစုံမတည်ရှိပါကအမှားတစ်ခုဖြစ်ပါကအမှားတစ်ခုထုတ်ပြန်လိမ့်မည်။

  3. ဇာတ်ကောင်အမည်အမှားကိုသတ်မှတ်ပါ

    • Set_Charet တွင်ဖော်ပြထားသောဇာတ်ကောင်သတ်မှတ်ထားသည့်အမည်မှာ MySQL မှထောက်ပံ့သောအမည်ကိုတင်းကြပ်စွာကိုက်ညီရမည်။

    • ဥပမာ UTF-8 ကို အသုံးပြုခြင်းသည်အမှားတစ်ခုပြုလုပ်လိမ့်မည်, မှန်ကန်သောတစ်ခုမှာ UTF8 ဖြစ်သည်။

  4. ဆက်သွယ်မှုသည်အောင်မြင်မှုမရရှိပါသို့မဟုတ်ပိတ်ထားသည်

    • အကယ်. $ MySQLI အရာဝတ်ထုသည်ဒေတာဘေ့စ်နှင့်မကိုက်ညီပါက Set_Charet ဟုခေါ်ဆိုပါလိမ့်မည်။


3 ။ ပြ problems နာတွေကိုဖြေရှင်းနည်း

1 ။ ဆက်သွယ်မှုအောင်မြင်မှုအတည်ပြုပါ

 $mysqli = new mysqli('gitbox.net', 'username', 'password', 'database');
if ($mysqli->connect_error) {
    die('Connect Error (' . $mysqli->connect_errno . ') ' . $mysqli->connect_error);
}

ဇာတ်ကောင်သတ်မှတ်ချက်ကိုဆက်လက်မထားမှီချိတ်ဆက်မှုမှခြွင်းချက်မရှိရန်သေချာပါစေ။

2 ။ Supported ဇာတ်ကောင်အစုံ

MySQL-Supported character set ကိုအောက်ပါ SQL နှင့်ချိတ်ဆက်ထားသည်။

 $result = $mysqli->query("SHOW CHARACTER SET");
while ($row = $result->fetch_assoc()) {
    echo $row['Charset'] . "\n";
}

သင်သတ်မှတ်ထားသည့်ဇာတ်ကောင်သတ်မှတ်ချက်ကို UTF8 ကဲ့သို့သော Set ရှိလားဆိုတာအတည်ပြုပါ။

3 ။ မှန်ကန်သောဇာတ်ကောင်သတ်မှတ်ချက်ကိုသုံးပါ

ဇာတ်ကောင်အစုံများကိုသတ်မှတ်သည့်အခါစာလုံးအများများခံစားချက်နှင့်အမည်သတ်မှတ်ချက်များကိုဂရုပြုပါ။

 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 ကဲ့သို့ကြိုးများကိုမသုံးပါနှင့်။

4 ။ ဒေတာဘေ့စ်နှင့်စားပွဲများ၏ဇာတ်ကောင်အစုံအတည်ပြုပါ

MySQL သို့ဝင်ရောက်ပြီးနောက်ဒေတာဘေ့စ်နှင့်စားပွဲများ၏ဇာတ်ကောင်အစုံများကိုစစ်ဆေးပါ။

 SHOW CREATE DATABASE database_name;
SHOW CREATE TABLE table_name;

အကယ်. ကိုက်ညီမှုမရှိပါကပ conflicts ိပက်ခများကိုရှောင်ရှားရန်ဒေတာဘေ့စ်သို့မဟုတ်စားပွဲ၏ဇာတ်ကောင်အစုံကိုပြုပြင်ရန်စဉ်းစားပါ။

5 ။ client claits claits sets ကိုသုံးပြီးချိန်ညှိချက်များကိုထပ်တူပြုခြင်း

တစ်ခါတစ်ရံတွင် Set_charet ဟုခေါ်ဆိုခြင်းမပြုရန်ဆက်သွယ်သည့်အခါ character set ကိုတိုက်ရိုက်သတ်မှတ်နိုင်သည်။

 $mysqli = new mysqli('gitbox.net', 'username', 'password', 'database');
$mysqli->query("SET NAMES 'utf8'");

သို့သော် set_charet ကို ဦး စွာအသုံးပြုရန်အကြံပြုသည်


4 ။ အကျဉ်းချုပ်

MySQLI :: set_charset setting ကိုအဓိကအားဖြင့်သဟဇာတဖြစ်သောဇာတ်ကောင်အစုံသို့မဟုတ်မှားယွင်းသောအမည်များကြောင့်ဖြစ်သည်။ ပြ troubl နာဖြေရှင်းသောအခါသေချာစွာလုပ်ပါ။

  • ဒေတာဘေ့စ်ဆက်သွယ်မှုအောင်မြင်သည်

  • အသုံးပြုသောဇာတ်ကောင်မှန်ကန်သောနှင့်ထောက်ခံသည်

  • ဒေတာဘေ့စ်များနှင့်စားပွဲများ၏ဇာတ်ကောင်အစုံသည် concatenated condited ်ဌာန်းထားသောဇာတ်ကောင်အစုံနှင့်ကိုက်ညီသည်

အထက်ပါအဆင့်များကိုစစ်ဆေးခြင်းအားဖြင့် PHP နှင့် MySQL အကြားဒေတာထုတ်လွှင့်မှု၏ဇာတ်ကောင် encoding ကိုသေချာစေရန်အမှားအယွင်းများကိုသေချာစေရန်အမှားအယွင်းများကိုများသောအားဖြင့်ဖြေရှင်းနိုင်လေ့ရှိသည်။