MySQLI :: Strows_set_ssy_name သည် PHP ၏ MySQLI extension တွင်လက်ရှိဒေတာဘေ့စ် connection ကိုပြန်လည်ပေးအပ်သော PHP ၏ MySQLI extension တွင်နည်းလမ်းဖြစ်သည်။ ဤနည်းလမ်း၏ရှေ့ပြေးပုံစံသည်အောက်ပါအတိုင်းဖြစ်သည် -
string mysqli::character_set_name ( void )
ဆိုလိုသည်မှာ connection မှအသုံးပြုသောဇာတ်ကောင်သည်သင်၏ဒေတာဘေ့စ် configuration နှင့်ကိုက်ညီကြောင်းအတည်ပြုရန် SQL လည်ပတ်မှုကိုအတည်ပြုရန် SQL လည်ပတ်မှုမပြုမီ၎င်းကိုသင်ခေါ်ဆိုနိုင်သည်။
MySQL သည် UTF8 , UTF8MB4 , Latt1 စသည့်ဇာတ်ကောင်အစုံများစွာကိုထောက်ခံသည်။
တရုတ်စာလုံးများသည်အမှိုက်များသို့မဟုတ်ဖြတ်တောက်နေကြသည်
ဘာသာစကားမျိုးစုံပါဝင်မှုပါ 0 င်သော query ကိုမှန်ကန်စွာလုပ်ဆောင်နိုင်ခြင်းမရှိပါ
ဒေတာများကိုဒေတာဘေ့စ်သို့စာဖြင့်ရေးသားပြီးနောက်ခြွင်းချက်တစ်ခုဖြစ်ပွားခဲ့သည်
အထူးသဖြင့် MySQL ၏ default character set သည် PHP မှအသုံးပြုသောဇာတ်ကောင်နှင့်မကိုက်ညီသောအခါပြ problems နာများအထူးသဖြင့်ဘုံဖြစ်သည်။ ထို့ကြောင့်ဆက်သွယ်မှုကိုထူထောင်ပြီးနောက်အချိန်မီသတ်မှတ်ထားသည့်ဇာတ်ကောင်ကိုစစ်ဆေးရန်ကောင်းသောအလေ့အကျင့်ဖြစ်သည်။
ဤနေရာတွင်လက်ရှိချိတ်ဆက်မှု၏ set settings ကိုရှာဖွေရန်နှင့်အတည်ပြုရန်နှင့်အတည်ပြုရန်အပြည့်အဝဥပမာတစ်ခုဖြစ်သည်။
<?php
$mysqli = new mysqli("localhost", "user", "password", "database");
// ဆက်သွယ်မှုအောင်မြင်မှုရှိမရှိစစ်ဆေးပါ
if ($mysqli->connect_errno) {
die("ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $mysqli->connect_error);
}
// လက်ရှိချိတ်ဆက်၏ဇာတ်ကောင်အစုံရယူပါ
$currentCharset = $mysqli->character_set_name();
echo "လက်ရှိဆက်သွယ်မှုမှအသုံးပြုသော set ဇာတ်ကောင်ဖြစ်ပါတယ်: " . $currentCharset;
// ဒါကြောင့်မျှော်လင့်ထားဇာတ်ကောင်အစုံရှိမရှိစစ်ဆေးပါ,ဥပမာအားဖြင့် utf8mb4
if ($currentCharset !== 'utf8mb4') {
echo "ဇာတ်ကောင်ကိုက်ညီမှုကိုသတ်မှတ်,အဖြစ် setting ကို utf8mb4...";
if (!$mysqli->set_charset("utf8mb4")) {
die("ဇာတ်ကောင်အစုံချမှတ်ရန်ပျက်ကွက်: " . $mysqli->error);
}
echo "ဇာတ်ကောင်အစုံမှ update လုပ်ထားပါတယ်: " . $mysqli->character_set_name();
}
?>
ဤဥပမာသည်ဒေတာဘေ့စ်နှင့်ချိတ်ဆက်ပြီးနောက်၎င်းသည်လက်ရှိအသုံးပြုသောဇာတ်ကောင်သတ်မှတ်ချက်ကိုပထမဆုံးအကြိမ်ထုတ်ပြန်သည်။ အကယ်. ၎င်းသည် UTF8MB4 မဟုတ်လျှင်ဇာတ်ကောင်အစုံကိုပြန်လည်စတင်ပါ။ MySQLI :: SET_CHARSet နှင့် MySQLI :: MySQLI :: Strows_set_name နှင့်ပူးပေါင်းခြင်းဖြင့်ဇာတ်ကောင်အစုံသည်လုံးဝတသမတ်တည်းဖြစ်ကြောင်းသေချာပါစေ။
PHP မှအသုံးပြုသောဇာတ်ကောင်သည်ဆာဗာဘက်တွင်သတ်မှတ်ထားသော default character နှင့်တူညီသည်ကိုသေချာအောင်လုပ်လိုပါက MySQL ၏ configuration file (များသောအားဖြင့် my.cnf သို့မဟုတ် my.ini ) မှ default settings ကိုဖတ်ရန်စဉ်းစားပါ။
ဥပမာအားဖြင့်, သင်သည်အောက်ပါ SQL Queriet ဇာတ်ကြောင်း set settings ကိုကြည့်ရန်အောက်ပါ SQL query ကိုသုံးနိုင်သည်။
<?php
$result = $mysqli->query("SHOW VARIABLES LIKE 'character_set_server'");
$row = $result->fetch_assoc();
$serverCharset = $row['Value'];
echo "MySQLဆာဗာ၏ပုံမှန်ဇာတ်ကောင်အစုသည်: " . $serverCharset;
if ($mysqli->character_set_name() !== $serverCharset) {
echo "检测到ဇာတ်ကောင်ကိုက်ညီမှုကိုသတ်မှတ်,စည်းညှိရန်ကြိုးစားနေသည်...";
if (!$mysqli->set_charset($serverCharset)) {
die("ဇာတ်ကောင်အစုံချမှတ်ရန်ပျက်ကွက်: " . $mysqli->error);
}
echo "ဇာတ်ကောင်အစုံအဖြစ်တစ်ပြိုင်တည်းချိန်ကိုက်ခဲ့သည်: " . $mysqli->character_set_name();
}
?>
ဤကုဒ်သည်လက်ရှိချိတ်ဆက်ထားသောဇာတ်ကောင်ကိုစစ်ဆေးရုံသာမကဆာဗာ၏ပုံမှန်ဇာတ်ကောင်အစုနှင့်နှိုင်းယှဉ်ပါကအချက်အလက်ရှေ့နောက်ညီညွတ်မှုကိုသေချာစေရန်အလိုအလျှောက်ထပ်တူထပ်မျှထပ်တူပြုသည်။