MySQL databases များကို php အသုံးပြုခြင်းကိုအသုံးပြုသောအခါအထူးသဖြင့်တရုတ်သို့မဟုတ်အခြား Multibyte ဇာတ်ကောင်များနှင့်ပတ်သက်သောပတ် 0 န်းကျင်တွင်ဇာတ်ကောင်အစုံ၏ set ၏ set ၏ setting သည်အလွန်အရေးကြီးသည်။ MySQLI :: SET_CHARSet နှင့် MySQLI_SESSESSESSESSESS သည် PHP မှပေးသောဇာတ်ကောင်အစုံများကိုသတ်မှတ်ရန်နည်းလမ်းနှစ်မျိုးရှိသည်။ သူတို့၏လုပ်ဆောင်ချက်များသည်အခြေခံအားဖြင့်အတူတူပင်ဖြစ်သော်လည်း၎င်းတို့သည်အသုံးပြုသောနှင့်သက်ဆိုင်သောအခြေအနေများနှင့်သက်ဆိုင်သောကွဲပြားခြားနားမှုအချို့ရှိသည်။ ဤဆောင်းပါးသည်ဤလုပ်ဆောင်ချက်နှစ်ခုကိုအသေးစိတ်ဖော်ပြရန်နှင့်သူတို့၏သက်ဆိုင်ရာအသုံးပြုမှုအခြေအနေများကိုဆွေးနွေးပါမည်။
၎င်းသည်ဇာတ်ကောင်အစုံများကိုသတ်မှတ်ရန်အရာဝတ်ထု ဦး တည်ရာချဉ်းကပ်နည်း (oop) ဖြစ်သည်။ ၎င်းသည် MySQLI အတန်းအစား၏နည်းလမ်းနှင့်သက်ဆိုင်ပြီးအသုံးပြုသည့်အခါ MySQLI ဥပမာအားဖြင့် MySQLI ဥပမာအားဖြင့်ခေါ်ယူရမည်။
ဥပမာ -
$mysqli = new mysqli("localhost", "user", "password", "database");
if ($mysqli->connect_error) {
die("ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $mysqli->connect_error);
}
if (!$mysqli->set_charset("utf8mb4")) {
die("ဇာတ်ကောင်အစုံချမှတ်ရန်ပျက်ကွက်: " . $mysqli->error);
}
Object-Oriented အရေးအသား, ကုဒ်ဖွဲ့စည်းပုံရှင်းလင်းသည်;
ခေတ်သစ် PHP ပရိုဂရမ်စတိုင်များနှင့်ပိုမိုကောင်းမွန်သောသဟဇာတဖြစ်ခြင်း,
အမှားမက်ဆေ့ခ်ျကိုအရာဝတ်ထုမှအရာဝတ်ထုအပေါ်ပိုပြီးအာရုံစူးစိုက်သည်။
ဒါကလုပ်ထုံးလုပ်နည်းဆိုင်ရာလုပ်ဆောင်ချက်တစ်ခုပါ။ MySQLI :: SET_CHARSet နှင့်မတူဘဲ၎င်းသည်အရာဝတ်ထုပေါ်တွင် မူတည်. မလွယ်ကူပါ ။
ဥပမာ -
$mysqli = mysqli_connect("localhost", "user", "password", "database");
if (!$mysqli) {
die("ဆက်သွယ်မှုမအောင်မြင်ပါ: " . mysqli_connect_error());
}
if (!mysqli_set_charset($mysqli, "utf8mb4")) {
die("ဇာတ်ကောင်အစုံချမှတ်ရန်ပျက်ကွက်: " . mysqli_error($mysqli));
}
စနစ်တကျရေးဆွဲခြင်းသို့မဟုတ်စနစ်တကျဖွံ့ဖြိုးတိုးတက်မှုအတွက်သင့်လျော်သောလုပ်ထုံးလုပ်နည်းဆိုင်ရာအရေးအသား,
၎င်းသည် PHP ၏ဖွံ့ဖြိုးတိုးတက်မှုအလေ့အထများနှင့်ပိုမိုနီးကပ်သည်။
GRANMARM သည်အတော်အတန်တိုက်ရိုက်ဖြစ်သည်။
MySQLI :: set_chariset သို့မဟုတ် mySqli_set_charset ဖြစ်စေ, သူတို့နောက်သို့သူတို့နောက်သို့ခေါ်ဆိုခြင်းနှင့်အတူတူပင်ဟုခေါ်သည့် MySQL C API သည်အတူတူပင်ဖြစ်သည်, ဆိုလိုသည်မှာနှစ် ဦး စလုံးသည် client character set ကိုသတ်မှတ်ခြင်း၏ရည်ရွယ်ချက်ကိုသိသိသာသာကွဲပြားမှုမရှိချေ။
တစ်ခုတည်းသောခြားနားချက်မှာခေါ်ဆိုမှုနည်းလမ်းဖြစ်သည်။ တစ်ခုမှာအရာဝတ်ထုနည်းလမ်းဖြစ်ပြီးအခြားတစ်ခုမှာလုပ်ထုံးလုပ်နည်းဆိုင်ရာလုပ်ဆောင်ချက်ဖြစ်သည်။
မျက်နှာမ | အကြံပြုအသုံးပြုမှုနည်းလမ်း | အကေြာင်းရင်း |
---|---|---|
အရာဝတ်ထု -oriented စတိုင်ကိုအသုံးပြု။ ဖွံ့ဖြိုးရေး | MySQLI :: SET_CHARSet | ကုဒ်ရှေ့နောက်ညီညွတ်မှုကိုစောင့်ရှောက်လော့ |
မြန်သော scripts များ, အသေးစားအစီအစဉ်များ | mysqli_set_charset | ရိုးရှင်းပြီးအစာရှောင်ခြင်း |
ရှိပြီးသားလုပ်ထုံးလုပ်နည်းကုဒ်စာကြည့်တိုက် | mysqli_set_charset | style တသမတ်တည်းထားပါ |
မူဘောင်များသို့မဟုတ်ခေတ်သစ် PHP စီမံကိန်းများကိုအသုံးပြုပါ | MySQLI :: SET_CHARSet | များသောအားဖြင့် oop ကို သုံး. ထိန်းသိမ်းရန်ပိုမိုလွယ်ကူသည် |
အက်ခရာ Set Settings ကိုတတ်နိုင်သမျှအမြန်ဆုံးပြုလုပ်သင့်သည် ဒေတာများကိုဖတ်ရှုခြင်း / ရေးသည့်အခါ barbled code ပြ problems နာများကိုရှောင်ရှားရန်ဒေတာဘေ့စ်ဆက်သွယ်မှုကိုအောင်မြင်စွာတည်ထောင်ရန်ဒေတာဘေ့စ်၏ဆက်သွယ်မှုကိုအောင်မြင်စွာတည်ဆောက်ပြီးနောက်ချက်ချင်းသတ်မှတ်ထားသည့်ဇာတ်ကောင်ကိုသတ်မှတ်ရန်အကြံပြုသည်။
ရောနှောအသုံးပြုမှုကိုရှောင်ကြဉ်ပါ OOP နှင့်လုပ်ထုံးလုပ်နည်းဆိုင်ရာအရေးအသားကိုတူညီသောစီမံကိန်းတွင်မရောနှောပါနှင့်, ၎င်းသည်ရှုပ်ထွေးမှုကုဒ်ပုံစံနှင့်ထိန်းသိမ်းရန်ခက်ခဲစေသည်။
Utf8MB4 အစား UTF8 အစားသုံးပါ
Emoji သို့မဟုတ် CJK ဇာတ်ကောင်များပါ 0 င်ပါက UTF8MB4 ကို သေချာစွာအသုံးပြုပါ။ ဥပမာ -
$mysqli->set_charset("utf8mb4"); // သို့မဟုတ် mysqli_set_charset($mysqli, "utf8mb4");
အမှားအယွင်းကို debugging အမှား သို့မဟုတ် mysqli_error () output အမှားများကိုအသုံးပြုခြင်းသည် connection (သို့) ဇာတ်ကောင်ပြတ်တောက်မှုများကိုဖြေရှင်းရန်အတွက်အမှားများသို့မဟုတ်ဇာတ်ကောင်များကပြ or နာများသို့မဟုတ်စရိုက်များကိုဖြေရှင်းနိုင်သည်။
လိပ်စာတစ်ခုမှလိပ်စာတစ်ခုမှအက်ခရာတပ်ဆင်ထားသော configurations များကိုရယူရန်လိုအပ်ပြီးဒေတာဘေ့စ်ဆက်သွယ်မှုကိုတည်ဆောက်ရန်ဤပြင်ဆင်မှုများကိုအသုံးပြုပါ။
$config = json_decode(file_get_contents("https://gitbox.net/config/db.json"), true);
$mysqli = new mysqli("localhost", $config['user'], $config['pass'], $config['dbname']);
$mysqli->set_charset($config['charset']);
ဤကဲ့သို့သောမြင်ကွင်းမျိုးတွင်အရာဝတ်ထုနည်းလမ်းများသို့မဟုတ်လုပ်ငန်းစဉ်လုပ်ဆောင်ချက်များသည် code of code enchutecture ပေါ် မူတည်. ပြောင်းလွယ်ပြင်လွယ်သုံးနိုင်သည်။
MySQLI :: SET_CHARSet ဆိုသည်မှာအရာဝတ်ထုနည်းလမ်းဖြစ်သည်, ၎င်းသည်ခေတ်မီပြီးစနစ်တကျဖွဲ့စည်းပုံ,
MySQLi_set_charset သည်လုပ်ငန်းစဉ်လုပ်ဆောင်မှုတစ်ခုဖြစ်သည်။
လုပ်ဆောင်ချက်နှစ်ခုသည်တသမတ်တည်းရှိပြီးရွေးချယ်မှုသည်ဖွံ့ဖြိုးတိုးတက်မှုစတိုင်နှင့်စီမံကိန်းလိုအပ်ချက်များပေါ်တွင်မူတည်သည်။
ဇာတ်ကောင် set setting ကိုလျစ်လျူမရှုပါနှင့်, ဒေတာမှန်ကန်မှုကိုသေချာစေရန်အခြေခံဖြစ်သည်။
ဖွံ့ဖြိုးရေးအလေ့အကျင့်တွင်အလုံးစုံဗိသုကာပုံစံနှင့်ကိုက်ညီသောနည်းလမ်းကိုရွေးချယ်ရန်အကြံပြုရန်စီစဉ်ထားပြီး Code ရှေ့နောက်ညီညွတ်မှုကိုထိန်းသိမ်းခြင်းထက် ပို. အရေးကြီးသည်။