ပထမ ဦး စွာဤနည်းလမ်းနှစ်ခုကိုအသုံးပြုခြင်းကိုအတိုချုပ်ပြန်လည်သုံးသပ်ကြပါစို့။
MySQLI တွင် Set_charset Method ကို MySQL ဒေတာဘေ့စ်နှင့်ချိတ်ဆက်သောအခါစာလုံးအစုကိုသတ်မှတ်ရန်အသုံးပြုသည်။ ဥပမာအားဖြင့်, Clubl-8 သို့သတ်မှတ်ရန်စာလုံးကိုချမှတ်ရန်သင်လုပ်နိုင်သည်။
$mysqli = new mysqli("localhost", "user", "password", "database");
if ($mysqli->connect_error) {
die("ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $mysqli->connect_error);
}
$mysqli->set_charset("utf8");
ဤနည်းလမ်းသည်ဆက်သွယ်မှုမှတစ်ဆင့်ကွပ်မျက်ခံရသောမေးမြန်းချက်များအားလုံးကိုအသုံးပြုသည်။
PDO တွင် Set Settings ကို DSN တွင်တိုက်ရိုက်သတ်မှတ်လေ့ရှိပြီး connection ပြီးနောက် dynamurce ကိုချိန်ညှိရန်လိုအပ်ပါက setttribute method ကိုသုံးနိုင်သည်။ အသုံးများသောအသုံးပြုမှုမှာ -
$dsn = 'mysql:host=localhost;dbname=database;charset=utf8';
$options = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'UTF8'"
];
$pdo = new PDO($dsn, 'user', 'password', $options);
ဤအချိန်တွင်ဒေတာဘေ့စ်နှင့်ချိတ်ဆက်သောအခါ UTF-8 encoding ကိုအသုံးပြုသော PDO: MySQL_ATTR_INIT_COMMAND မှတဆင့်သတ်မှတ်ထားသည်။
MySQLI :: set_charet နှင့် pdo :: pdo :: setttribute :: setattribute နှစ်ခုလုံးကိုဇာတ်ကောင်အစုံသတ်မှတ်ရန်အသုံးပြုနိုင်သော်လည်းအထူးသဖြင့်အတူတကွအသုံးပြုရန်လိုအပ်သည့်အခါ၎င်းတို့၏သတ်သတ်မှတ်မှတ်အသုံးပြုမှုနှင့်အကျိုးသက်ရောက်မှုများကွဲပြားခြားနားမှုများရှိသည်။
MySQLI နှင့် PDO ကို အသုံးပြု. ဒေတာဘေ့စ်ကိုချိတ်ဆက်သောအခါ, ဇာတ်ကောင် set ကို setting ကိုချိန်ညှိရန်အချိန်သည်အလွန်အရေးကြီးသည်။ MySQLI အတွက်ဇာတ်ကောင်အစုံ၏ setting ကိုတတ်နိုင်သမျှအမြန်ဆုံးပြုလုပ်သင့်သည်။ ဆက်သွယ်မှုကိုထူထောင်ပြီးနောက်ချက်ချင်းသတ်မှတ်ရန်အကောင်းဆုံးဖြစ်သည်။ နောက်ဆက်တွဲမေးမြန်းချက်များတွင်ဖော်ပြထားသောဇာတ်ကောင်ကိုသင်ပြောင်းလဲလိုက်ပါက၎င်းသည်မကိုက်ညီသောဇာတ်ကောင်အစုံများကိုဖြစ်ပေါ်စေပြီးအမှိုက်များပြ problems နာများဖြစ်ပေါ်စေသည်။
PDO အတွက် connection အတွင်း DSN မှ Set Set Set Set ကိုသတ်မှတ်ခြင်းသည်များသောအားဖြင့်အသင့်တော်ဆုံးနည်းလမ်းဖြစ်သည်။ setting ကို posting အတွက် setttribute method ကိုသုံးနိုင်သော်လည်း၎င်းသည်ကွပ်မျက်ခံရသည့်စုံစမ်းမှုကိုမပယ်ဖျက်နိုင်ပါ။ ထို့ကြောင့်ဆက်သွယ်မှုကိုဖန်တီးသည့်အခါဇာတ်ကောင်ကိုတိုက်ရိုက်သတ်မှတ်ရန်အကြံပြုသည်။
MySQLI နှင့် PDO နှစ်ခုလုံးကိုတူညီသောလျှောက်လွှာတွင်သုံးပါက၎င်းတို့အားတူညီသော database connection ကိုမျှဝေပါက (ဥပမာ, နည်းလမ်းနှစ်မျိုးလုံးကိုတောင်းဆိုမှု၏အစိတ်အပိုင်းများတွင်အသုံးပြုသည်), ပ conflicts ိပက်ခများသတ်မှတ်ခြင်းနှင့် ပတ်သက်. အထူးဂရုပြုရန်လိုအပ်သည်။ ဥပမာ MySQLI နှင့် PDO ၏ sett settings set settings သည်လွတ်လပ်မှုရှိပြီးသက်ဆိုင်ရာမေးမြန်းချက်များကိုသက်ရောက်သည်။ MySQLI နှင့် PDE ရှိ MySQLI နှင့် Latin1 တွင်ဆက်သွယ်မှုကို UTF-8 သို့သတ်မှတ်ထားပါကမမှန်မကန်ဇာတ်ကောင် encoding စွမ်းဆောင်ရည်ပေါ်ပေါက်လာနိုင်သည်။
ဇာတ်ကောင်ကိုရှောင်ရှားရန်ပ conflicts ိပက်ခများပ conflicts ိပက်ခများသတ်မှတ်ရန်ဤတွင်အချို့သောအကြံပြုထားသောဖြေရှင်းနည်းများနှင့်အကောင်းဆုံးအလေ့အကျင့်များဖြစ်သည်။
ဖြစ်နိုင်လျှင် MySQLI နှင့် PDO နှစ် ဦး စလုံးကိုဖြစ်နိုင်လျှင်တူညီသောတောင်းဆိုမှုတွင်မသုံးပါနှင့်။ ဇာတ်ကောင် settings ၏တူညီမှုကိုသေချာစေရန်ဒေတာဘေ့စ်လုပ်ငန်းများလုပ်ဆောင်ရန်နည်းလမ်းများကိုရွေးချယ်ရန်အကြံပြုသည်။ ဥပမာအားဖြင့်, PDO ကိုအသုံးပြုခြင်းသည် database access interface ကို အသုံးပြု. database အမျိုးအစားမျိုးစုံကိုထောက်ပံ့သည်။
MySQLI (သို့) PDO ကိုအသုံးပြုသည်ဖြစ်စေ, ဒေတာဘေ့စ်ဆက်သွယ်မှုအားလုံးရှိအက္ခရာများကိုသတ်မှတ်ထားသည့်အတိုင်းတူညီသောဇာတ်ကောင်များကိုသေချာစွာအသုံးပြုရန်သေချာစေပါ။ အကယ်. ၎င်းသည်ဒေတာဘေ့စ်ဆက်သွယ်မှုကို Multi-database connection တစ်ခုဖြစ်ပါက connection တစ်ခုစီသည် set_chariet ကို အသုံးပြု. ကိုက်ညီမှုရှိစေရန်အကြံပြုသည်။
ပိုမိုရှုပ်ထွေးသော application များအနေဖြင့် database configuration တွင်တူညီစွာသတ်မှတ်ထားသည့် default character ကိုသတ်မှတ်ရန်အကြံပြုသည်။ ဥပမာအားဖြင့်, သင်သည်သင်၏လျှောက်လွှာတွင်ဇာတ်ကောင် seting ကိုလျှော့ချရန်ဒေတာဘေ့စ်ဆာဗာတွင် UTF-8 သို့ UTF-8 သို့သတ်မှတ်ထားသည့် default character ကိုသတ်မှတ်နိုင်သည်။