ဒေတာဘေ့စ် connection အတွက် MySQLI :: set_charset method ကိုဇာတ်ကောင်အစုံသတ်မှတ်ရန်အတွက် MySQLI :: set_charet နည်းလမ်းကိုမကြာခဏအသုံးပြုသည်။ သီအိုရီအရဇာတ်ကောင်အစုံမှန်ကန်စွာသတ်မှတ်ထားပါကအချက်အလက်ထုတ်လွှင့်ခြင်းနှင့်စုံစမ်းမှုအားလုံးသည်သတ်မှတ်ထားသောဇာတ်ကောင်အစုံအရ encoded နိုင်သင့်သည်။ သို့သော်အမှန်တကယ်အသုံးပြုမှုတွင် MySQLI :: Set_charset Setting တွင်အခြေအနေများမအကျိုးသက်ရောက်နိုင်သည့်အခြေအနေများနှင့်မကြာခဏဆိုသလိုကျွန်ုပ်တို့သည်အခြေအနေများနှင့်မကြာခဏကြုံတွေ့ရလေ့ရှိသည်။
ဤဆောင်းပါးသည် MySQLI :: set_charets setting ကိုအဘယ်ကြောင့်မမှန်ကန်ကြောင်း,
DataSi :: Set_charet ကို Database connection အောင်မြင်ပြီးနောက် Set_charet ကိုခေါ်ယူသင့်သည်။ ဘုံအကြောင်းပြချက်များတွင်:
connection ပြီးနောက်အချိန်အတွက်မသတ်မှတ်ထားပါ
MySQLI :: SET_CHARSet ကို ဒေတာဘေ့စ်ဆက်သွယ်မှုသည်အောင်မြင်ပြီးနောက်ဟုခေါ်ရမည်။ ၎င်းကိုဆက်သွယ်မှုမတိုင်မီဟုခေါ်ပါက, character set ကိုမှန်ကန်စွာသတ်မှတ်လိမ့်မည်မဟုတ်ပါ။
Connection Set settings ကိုဆက်သွယ်မှုမပြုမီအက်ခရာတပ်ဆင်ထားသည် ဒေတာဘေ့စ် connection တွင် character connection (connection strings charset parameter သည်) တွင် set ကိုသတ်မှတ်ထားပါက MySQLI :: set_charet ကို လျစ်လျူရှုခြင်းသို့မဟုတ်အကျိုးသက်ရောက်မှုမရှိပါ။
ဇာတ်ကောင်အစုံများသည်ဒေတာဘေ့စ်နှင့်မကိုက်ညီပါ သင်သတ်မှတ်ထားသည့်ဇာတ်ကောင်သည်ဒေတာဘေ့စ်၏ပုံမှန်ဇာတ်ကောင်သတ်မှတ်ချက်နှင့်မကိုက်ညီပါက၎င်းသည်ဇာတ်ကောင်သတ်မှတ်ချက်ကိုမမှန်ကန်ပါ။ သင်ကတသမတ်တည်းရှိမရှိအတည်ပြုရန်ဒေတာဘေ့စ်၏ဇာတ်ကောင် settings ကိုစစ်ဆေးနိုင်သည်။
သင်အောက်ပါကုဒ်ကို execute ဆိုပါစို့။
$mysqli = new mysqli("localhost", "username", "password", "database");
$mysqli->set_charset("utf8mb4");
သို့သော် carbled code သည် setting ပြီးနောက်ပေါ်လာသည်။ ဖြစ်နိုင်သောအကြောင်းပြချက်များမှာ -
ဒေတာဘေ့စ်သည်ဤဇာတ်ကောင်ကိုမထောက်ပံ့ပါ ဒေတာဘေ့စ်သည်သင်သတ်မှတ်ထားသည့်ဇာတ်ကောင်ကိုထောက်ခံသည်ကိုစစ်ဆေးပါ။ ဥပမာအားဖြင့် UTF8MB4 သည် MySQL ဗားရှင်း 5.5+ မှသာထောက်ပံ့သောဇာတ်ကောင်သတ်မှတ်ချက်ဖြစ်သည်။ ဒေတာဘေ့စဗားရှင်းသည်နိမ့်ကျပါက၎င်းကို UTF8MB4 ကိုသတ်မှတ်မည်မဟုတ်ပါ။
Claits Support ပြ issues နာများကိုသတ်မှတ်ပါ အကယ်. ဒေတာဘေ့စ်သည် UTF8MB4 ဇာတ်ကောင် set ကိုဖွင့်ထားပါက, ဒေတာဘေ့စ်သည်အောက်ပါ SQL query မှသတ်မှတ်ထားသည့်စာလုံးကိုထောက်ပံ့သည်ကိုစစ်ဆေးနိုင်သည်။
SHOW CHARACTER SET LIKE 'utf8mb4';
ရလဒ်မရှိပါကဒေတာဘေ့စ်သည် UTF8MB4 စာလုံးအလုံးစုံကိုမထောက်ပံ့ပါ။ UTF8 ကို သုံးရန်သို့မဟုတ်ဒေတာဘေ့စ်ကိုအဆင့်မြှင့်ရန်ရွေးချယ်နိုင်သည်။
သင် connection string တွင် set character ကိုသတ်မှတ်ထားလျှင် -
$mysqli = new mysqli("localhost", "username", "password", "database", 3306, NULL);
$mysqli->set_charset("utf8mb4");
အချို့ဖြစ်ရပ်များတွင် ဒေါ်လာ MySQLI-> set_charet ("Utf8MB4") ၏ setting ကို connection တွင်သတ်မှတ်ထားသည့်အတွက်လျစ်လျူရှုနိုင်သည်။ ဤကိစ္စတွင် connection string သည် cheartset parameter သည်ပါ 0 င်သည်ကိုစစ်ဆေးနိုင်သည်။
ဒေတာဘေ့စ်နှင့်မဆက်သွယ်မီဇာတ်ကောင်သတ်မှတ်ရန်သင်ကြိုးစားပါက Set_charet သည် အကျိုးသက်ရောက်မည်မဟုတ်ပါ။
$mysqli = new mysqli("localhost", "username", "password", "database");
$mysqli->set_charset("utf8mb4");
မှန်ကန်သောခေါ်ဆိုမှုအမိန့်သည် Connection ကို ဦး စွာတည်ထောင်ရန်နှင့်ဇာတ်ကောင်သတ်မှတ်ချက်ကိုသတ်မှတ်ရန်ဖြစ်သည်။ Set_charet ကို ဒေတာဘေ့စ်နှင့်ချိတ်ဆက်ပြီးနောက်ချက်ချင်းခေါ်ပါ။
ပထမ ဦး စွာသင်၏ဒေတာဘေ့စ်နှင့်စားပွဲ၏ဇာတ်ကောင်အစုံသည်သတ်မှတ်ထားသည့်ဇာတ်ကောင်အစုံနှင့်ကိုက်ညီမှုရှိမရှိအတည်ပြုပါ။ အောက်ပါ SQL query မှတဆင့်လက်ရှိဒေတာဘေ့စ်၏ဇာတ်ကောင် set settings ကိုသင်ကြည့်ရှုနိုင်သည်။
SHOW CREATE DATABASE `database_name`;
သင်ဇာတ်ကောင် settings သည်ကိုက်ညီမှုရှိကြောင်းသင်တွေ့ရှိပါကအောက်ပါ command မှတဆင့်ဒေတာဘေ့စ်၏စာလုံးအစုကိုပြုပြင်နိုင်သည်။
ALTER DATABASE `database_name` CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
တစ်ခါတစ်ရံ PHP configuration သည်ဇာတ်ကောင်များ၏ setting ကိုအကျိုးသက်ရောက်နိုင်သည်။ php.ini ဖိုင်တွင် default_charet ကို သေချာအောင်လုပ်ပါ။
default_charset = "UTF-8"
ထို့အပြင်သင်၏ PHP ပတ် 0 န်းကျင်သည် MySQLI extension များကိုထောက်ပံ့ရန်နှင့်မသန်စွမ်းမှုမရှိကြောင်းသေချာစေပါ။
အကယ်. ပြ problem နာကိုမဖြေရှင်းနိုင်သေးပါကဇာတ်ကောင် settings နှင့်ပတ်သက်သောအမှားသတင်းအချက်အလက်များရှိမရှိကြည့်ရန်အသေးစိတ်အမှားအစီရင်ခံစာကိုသင်ဖွင့်နိုင်သည်။ ဥပမာအားဖြင့်:
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
အမှားအယွင်းများဖွင့်လှစ်ပြီးနောက် PHP သည်ပြ the နာကိုရှာဖွေရန်အမှားတစ်ခုပြုလုပ်ရန်အမှားတစ်ခုကိုပြုလုပ်သောအခါချွင်းချက်ချလိမ့်မည်။
သက်ဆိုင်သောတက်(ဂ်)များ:
mysqli