ဒေတာဘေ့စ်များအတွက် PHP ကို MySQL နှင့်အပြန်အလှန်ဆက်သွယ်သောအခါအထူးသဖြင့်တရုတ်သို့မဟုတ်အခြားအထူးအက္ခရာများကိုထုတ်လွှင့်သောအခါ, MySQLI :: Get_charset function သည်ဒေတာဘေ့စ်ဆက်သွယ်မှုကိုရရှိရန်အသုံးပြုသောဇာတ်ကောင် set တစ်ခုဖြစ်သည်။ ဘာကြောင့်ဒီလိုဖြစ်ရတာလဲ ဤဆောင်းပါးသည်သင့်အတွက်သက်ဆိုင်ရာအကြောင်းပြချက်များကိုခွဲခြမ်းစိတ်ဖြာပြီးဘုံပြ troubl နာဖြေရှင်းရာအဆင့်များကိုပေးလိမ့်မည်။
PHP တွင် MySQLI :: Get_charet သည်အလွန်အသုံးဝင်သောလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ လက်ရှိဒေတာဘေ့စ်ဆက်သွယ်မှုမှအသုံးပြုသောဇာတ်ကောင်ကိုရရှိရန်အသုံးပြုနိုင်သည်။ ၎င်း၏ပြန်လာတန်ဖိုးမှာလက်ရှိဆက်သွယ်မှု၏သတ်မှတ်ချက်အချက်အလက်များပါ 0 င်သည့်အရာဝတ်ထုတစ်ခုဖြစ်သည်။ ဥပမာအားဖြင့်အောက်ပါကုဒ်ကိုသုံးပါ။
$mysqli = new mysqli("localhost", "user", "password", "database");
if ($mysqli->connect_error) {
die("ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $mysqli->connect_error);
}
// လက်ရှိချိတ်ဆက်၏ဇာတ်ကောင်အစုံရယူပါ
$charset = $mysqli->get_charset();
echo "လက်ရှိဇာတ်ကောင်အစုံဖြစ်ပါတယ်: " . $charset->charset;
ဤကုဒ်သည်လက်ရှိချိတ်ဆက်ထားသောလက်ရှိချိတ်ဆက်မှု၏အချက်အလက်များကိုဖော်ပြထားလိမ့်မည်။ ၎င်းသည်များသောအားဖြင့် UTF8 သို့မဟုတ် UTF8MB4 ဖြစ်လိမ့်မည်။
သို့သော်ဒေတာဘေ့စ်ဆက်သွယ်မှုအတွက်မှန်ကန်သောစာလုံးကို အသုံးပြု. ကျွန်ုပ်တို့သည်အမှိုက်များပြ issues နာများနှင့်ကြုံတွေ့ရဆဲဖြစ်နိုင်သည်။ ၎င်းသည်အခြားအချက်များနှင့်အညီများသောအားဖြင့်ကျွန်ုပ်တို့သည်အသေးစိတ်စုံစမ်းစစ်ဆေးမှုကိုအောက်တွင်ဖော်ပြထားသည်။
PHP တွင် MySQL သို့ဆက်သွယ်သောအခါမှန်ကန်သောဇာတ်ကောင်သတ်မှတ်ချက်ကိုသင်သတ်မှတ်လျှင်ပင်ဒေတာဘေ့စ်သို့မဟုတ်စားပွဲ၏ဇာတ်ကောင်အစုံကိုမှန်ကန်သော encoding ကိုသတ်မှတ်မည်မဟုတ်ပါ။ ဤအချိန်တွင် PHP သည်မှန်ကန်သောဇာတ်ကောင် encoding ကိုပို့လျှင်ပင် MySQL ကိုမှားယွင်းသော encoding တွင်သိုလှောင်ထားဆဲဖြစ်သည်။
Troubleshooting နည်းလမ်း:
Databases နှင့်စားပွဲများ၏ settings settings ကို settings set setting ကိုကြည့်ရှုရန် Show Dow ကို အသုံးပြု ပါ။
ဥပမာအားဖြင့်:
SHOW CREATE DATABASE database_name;
SHOW CREATE TABLE table_name;
ဇာတ်ကောင်အစုံသည် UTF8 သို့မဟုတ် UTF8MB4 မဟုတ်ကြောင်းသင်တွေ့ရှိပါကအောက်ပါ SQL ကြေငြာချက်မှတစ်ဆင့်ပြုပြင်နိုင်သည်။
ALTER DATABASE database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
PHP သည် MySQL နှင့်ဆက်သွယ်သောအခါ MySQLI :: Get_charet ကို အသုံးပြု. Cyple Contaction ကိုအတည်ပြုသော်လည်းအမှန်တကယ်ဆက်သွယ်မှုကိုမှန်ကန်သောဇာတ်ကောင်သတ်မှတ်ရန်မသတ်မှတ်နိုင်ပါ။ အဆိုပါဇာတ်ကောင်အစုံ set_charet function ကိုသုံးပြီးအတိအလင်း set နိုင်ပါတယ်။
Troubleshooting နည်းလမ်း:
ဒေတာဘေ့စ် connection တစ်ခုတည်ဆောက်ပြီးနောက်ဇာတ်ကောင်အစုံကိုအတိအလင်းသတ်မှတ်ပါ။
$mysqli->set_charset("utf8mb4");
ဤကုဒ်သည်လက်ရှိဆက်သွယ်မှုကို UTF8MB4 ဇာတ်ကောင်ကိုအသုံးပြုရန်ဖိအားပေးသည်။
ဒေတာဘေ့စ်ဆက်သွယ်မှုများအတွက် set settings များအပြင်, စာမျက်နှာ၏ output character character set ကိုမှန်ကန်စွာသတ်မှတ်ရန်လိုအပ်သည်။ အထူးသဖြင့်အထူးသဖြင့် HTML ၏ ပါဝင်မှု output ကိုမှန်ကန်စွာမသတ်မှတ်ပါက browser သည်စာမျက်နှာရှိစာလုံးများကိုမခွဲနိုင်ပါ။
Troubleshooting နည်းလမ်း:
HTML စာမျက်နှာတွင်မှန်ကန်သော Meta tag ကိုသေချာစွာထည့်သွင်းပါ။
<meta charset="UTF-8">
၎င်းသည် UTF-8 encoding တွင်စာမျက်နှာအကြောင်းအရာကိုခွဲခြမ်းစိတ်ဖြာရန် browser ကိုပြောပြလိမ့်မည်။
ဖိုင်တစ်ခုမှဒေတာများကိုဖတ်ပြီးဒေတာဘေ့စ်တစ်ခုထဲသို့ထည့်ပါကဖိုင်၏ encoding သည်ဒေတာဘေ့စ်ဇာတ်ကောင်အစုံနှင့်ကိုက်ညီမှုမရှိပါ။ ဒေတာကိုမထည့်သွင်းမီ, ဖိုင်ကိုယ်တိုင်ကိုမှန်ကန်စွာ encoded ဖြစ်ပါတယ်သေချာအောင်လုပ်ပါ။
Troubleshooting နည်းလမ်း:
ဖိုင်၏ encoding ကိုစစ်ဆေးရန် MB_DetEct_encoding function ကိုသုံးပါ။
$file_contents = file_get_contents('data.txt');
$encoding = mb_detect_encoding($file_contents, 'UTF-8, ISO-8859-1, GBK');
echo $encoding;
အကယ်. ဖိုင်သည်မှန်ကန်စွာ encoding မဟုတ်လျှင် MB_ConVert_encoding function ကိုသုံးနိုင်သည်။
$file_contents = mb_convert_encoding($file_contents, 'UTF-8', 'GBK');
အချို့ကိစ္စရပ်များတွင်ဒေတာဘေ့စ်နှင့်ချိတ်ဆက်သောအခါသင်ဇာတ်ကောင်သတ်မှတ်ချက်တစ်ခုချမှတ်လျှင်ပင်, ဒေတာဘေ့စ်၏ default character set sets သည်အခြားဇာတ်ကောင်အစုကို လက်တင်အမေရိက ကဲ့သို့သောအခြားဇာတ်ကောင်အစုံများဖြစ်လျှင်, MySQL အတွက် default character set ကိုသတ်မှတ်ခြင်းဖြင့်ရှေ့နောက်ညီညွတ်မှုကိုသေချာစွာစစ်ဆေးနိုင်သည်။
Troubleshooting နည်းလမ်း:
My.CNF (သို့ ) My.cnf သို့မဟုတ် My.INI configuration files များတွင် set settings settings ကိုစစ်ဆေးပြီး UTF8MB4 သို့မဟုတ် UTF8 ကို သေချာအောင်လုပ်ပါ။
ဥပမာအားဖြင့်အောက်ပါ configuration ကိုထည့်ပါ။
[client]
default-character-set = utf8mb4
[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
MySQLI :: Get_chariSet ဆိုဒ်ကိုအသုံးပြုနေလျှင်ပင်, ၎င်းသည်များသောအားဖြင့်ဒေတာဘေ့စ်, ဇယား, စာမျက်နှာ output သို့မဟုတ်ဖိုင်များအတွက်မကိုက်ညီသောဇာတ်ညွှန်း settings များကြောင့်ဖြစ်သည်။ ဒေတာဘေ့စ်ဇာတ်ကောင်အစုံများ, ဆက်သွယ်မှုဇာတ်ကောင်အစုံ, စာမျက်နှာ output character sets နှင့် file encoding ကဲ့သို့သောအချက်များကိုတဖြည်းဖြည်းစစ်ဆေးခြင်းကိုပြုလုပ်နိုင်သည်။
ဒီဆောင်းပါးမှာပြ esh နာဖြေရှင်းမှုအဆင့်တွေကတော့, အကယ်. သင်သည်ပြ esh နာဖြေရှင်းခြင်းလုပ်ငန်းစဉ်အတွင်းအခြားပြ problems နာများကိုသင်ကြုံတွေ့ရပါက ထပ်မံ. ဆွေးနွေးရန်အခမဲ့ဖြစ်ပါစေ။
သက်ဆိုင်သောတက်(ဂ်)များ:
mysqli