<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// ဒီဆောင်းပါးမှာဥပမာက PHP အသုံးပြု mysqli::character_set_name ဒေတာဘေ့စ် connection character set ကိုစစ်ဆေးပါ</span></span><span>
</span><span><span class="hljs-comment">// ဒေတာဘေ့စ် connection parameters တွေကိုမှန်ကန်စွာ configure လုပ်ထားပါ</span></span><span>
</span><span><span class="hljs-variable">$mysqli</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title function_ invoke__">mysqli</span></span><span>(</span><span><span class="hljs-string">"localhost"</span></span><span>, </span><span><span class="hljs-string">"username"</span></span><span>, </span><span><span class="hljs-string">"password"</span></span><span>, </span><span><span class="hljs-string">"database"</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$mysqli</span></span><span>->connect_error) {
</span><span><span class="hljs-keyword">die</span></span><span>(</span><span><span class="hljs-string">"ဆက်သွယ်မှုမအောင်မြင်ပါ: "</span></span><span> . </span><span><span class="hljs-variable">$mysqli</span></span><span>->connect_error);
}
</span><span><span class="hljs-comment">// မျှော်လင့်ထားဇာတ်ကောင်အစုံထားပါ</span></span><span>
</span><span><span class="hljs-variable">$expectedCharset</span></span><span> = </span><span><span class="hljs-string">'utf8mb4'</span></span><span>;
</span><span><span class="hljs-variable">$mysqli</span></span><span>-></span><span><span class="hljs-title function_ invoke__">set_charset</span></span><span>(</span><span><span class="hljs-variable">$expectedCharset</span></span><span>);
</span><span><span class="hljs-comment">// 获取当前连接အသုံးပြု的字符集</span></span><span>
</span><span><span class="hljs-variable">$currentCharset</span></span><span> = </span><span><span class="hljs-variable">$mysqli</span></span><span>-></span><span><span class="hljs-title function_ invoke__">character_set_name</span></span><span>();
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"လက်ရှိဇာတ်ကောင်အစုံ: <span class="hljs-subst">$currentCharset</span></span></span><span>\n";
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$currentCharset</span></span><span> === </span><span><span class="hljs-variable">$expectedCharset</span></span><span>) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ဇာတ်ကောင်ကိုက်ညီ,လျှောက်လွှာများသည်ဒေတာများကိုလုံခြုံစွာလည်ပတ်နိုင်သည်。\n"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ဇာတ်ကောင်မတိုက်ဆိုင် set,ယခု <span class="hljs-subst">$currentCharset</span></span></span><span>,ဖြစ်သင့်သည် </span><span><span class="hljs-subst">$expectedCharset</span></span><span>,ကျေးဇူးပြု. ချိန်ညှိချက်များကိုစစ်ဆေးပါ。\n";
}
</span><span><span class="hljs-variable">$mysqli</span></span><span>-></span><span><span class="hljs-title function_ invoke__">close</span></span><span>();
</span><span><span class="hljs-meta">?></span></span><span>
------------------------------------------------------------
</span><span><span class="hljs-comment"># 如何အသုံးပြု mysqli::character_set_name 确认数据库字符集ဟုတ်ကဲ့否与应用ဇာတ်ကောင်ကိုက်ညီ?</span></span><span>
ဖွံ့ဖြိုးရေးတွင် PHP လျှောက်ထားတဲ့အခါ,ဇာတ်ကောင်သတ်မှတ်ချက်ပြ problems နာများသည်မှန်ကန်သောစာဖတ်ခြင်း, အရေးအသားနှင့်အချက်အလက်များကိုပြသခြင်းကိုအကျိုးသက်ရောက်စေသောဘုံပြ problems နာများထဲမှတစ်ခုဖြစ်သည်။。အထူးသဖြင့်ဘာသာစကားမျိုးစုံပါဝင်မှုမှကြွလာသောအခါ,ကိုက်ညီမှုမရှိသောဇာတ်ကောင်အစုံများသည် concled code သို့ပို့ဆောင်နိုင်သည်、ဒေတာဆုံးရှုံးမှုနှင့်လုံခြုံရေးအန္တရာယ်များပင်。ထိုကေြာင့်,နှင့်အတူအတွက် MySQL ဒေတာဘေ့စ cannection ကိုထူထောင်ပြီးနောက်,确认当前အသုံးပြု的字符集ဟုတ်ကဲ့否与应用期望的一致,ဒါဟာအလွန်အရေးကြီးသောခြေလှမ်းဖြစ်ပါတယ်。
</span><span><span class="hljs-comment">## ဘာလဲ `mysqli::character_set_name`?</span></span><span>
`mysqli::</span><span><span class="hljs-title function_ invoke__">character_set_name</span></span><span>()` ဟုတ်ကဲ့ PHP `mysqli` အတန်းထဲတွင်နည်းလမ်း,它返回当前数据库连接所အသုံးပြု的字符集名称。ဒီနည်းလမ်းအားဖြင့်,我们可以方便地确认当前连接实际အသုံးပြု的字符集,အချည်းနှီးပြ problems နာများကိုရှောင်ပါ。
</span><span><span class="hljs-comment">## အသုံးပြု方法</span></span><span>
ဒေတာဘေ့စ်ဆက်သွယ်မှုကိုအောင်မြင်စွာတည်ဆောက်ပြီးနောက်သင်ဤနည်းလမ်းကိုသင်ခေါ်ဆိုနိုင်သည်。以下ဟုတ်ကဲ့一个基础的အသုံးပြု示例:
```php
</span><span><span class="hljs-variable">$mysqli</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title function_ invoke__">mysqli</span></span><span>(</span><span><span class="hljs-string">"localhost"</span></span><span>, </span><span><span class="hljs-string">"user"</span></span><span>, </span><span><span class="hljs-string">"password"</span></span><span>, </span><span><span class="hljs-string">"database"</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$mysqli</span></span><span>->connect_error) {
</span><span><span class="hljs-keyword">die</span></span><span>(</span><span><span class="hljs-string">"ဆက်သွယ်မှုမအောင်မြင်ပါ: "</span></span><span> . </span><span><span class="hljs-variable">$mysqli</span></span><span>->connect_error);
}
</span><span><span class="hljs-variable">$charset</span></span><span> = </span><span><span class="hljs-variable">$mysqli</span></span><span>-></span><span><span class="hljs-title function_ invoke__">character_set_name</span></span><span>();
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"当前အသုံးပြု的字符集ဟုတ်ကဲ့: <span class="hljs-subst">$charset</span></span></span><span>";
</span></span>
ပုံမှန်အားဖြင့် MySQLI သည် လက်တင်နံပါတ် ဇာတ်ကောင်ကိုအသုံးပြုသည်။ ၎င်းသည်ခေတ်မီအက်ပလီကေးရှင်းများ (အထူးသဖြင့်တရုတ်) ၏လိုအပ်ချက်များကိုဖြည့်ဆည်းပေးသည်။ ထို့ကြောင့်ကျွန်ုပ်တို့သည်များသောအားဖြင့် UTF8MB4 ကဲ့သို့သောစာလုံးအစုကိုကိုယ်တိုင်ချမှတ်ရန်လိုအပ်သည်။
<span><span><span class="hljs-variable">$mysqli</span></span><span>-></span><span><span class="hljs-title function_ invoke__">set_charset</span></span><span>(</span><span><span class="hljs-string">"utf8mb4"</span></span><span>);
</span></span>
settings ကို setting လုပ်ပြီးနောက် Settings သည်ထိရောက်မှုရှိ / မရှိကိုအတည်ပြုရန် call_set_name () ကိုခေါ်ပါ။
လက်တွေ့ကျသော application များအရဇာတ်ကောင်သတ်မှတ်ထားသည့်အတိုင်းအလိုအလျောက်ရှာဖွေရန်သင့်လျော်သောယုတ္တိကုဒ်အပိုင်းအစတစ်ခုကိုရေးရန်အကြံပြုလိုပါသည်။
<span><span><span class="hljs-variable">$expectedCharset</span></span><span> = </span><span><span class="hljs-string">'utf8mb4'</span></span><span>;
</span><span><span class="hljs-variable">$mysqli</span></span><span>-></span><span><span class="hljs-title function_ invoke__">set_charset</span></span><span>(</span><span><span class="hljs-variable">$expectedCharset</span></span><span>);
</span><span><span class="hljs-variable">$currentCharset</span></span><span> = </span><span><span class="hljs-variable">$mysqli</span></span><span>-></span><span><span class="hljs-title function_ invoke__">character_set_name</span></span><span>();
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$currentCharset</span></span><span> !== </span><span><span class="hljs-variable">$expectedCharset</span></span><span>) {
</span><span><span class="hljs-comment">// အမှားတစ်ခုဖွင့်ပါသို့မဟုတ်သတိပေးပါ</span></span><span>
</span><span><span class="hljs-title function_ invoke__">error_log</span></span><span>(</span><span><span class="hljs-string">"ဇာတ်ကောင်မတိုက်ဆိုင် set: ယခု <span class="hljs-subst">$currentCharset</span></span></span><span>,ဖြစ်သင့်သည် </span><span><span class="hljs-subst">$expectedCharset</span></span><span>");
}
</span></span>
MySQL သည် UTF8 ကို ထောက်ပံ့သော်လည်း UTF-8 ဇာတ်ကောင်ကိုအပြည့်အဝသတ်မှတ်ထားခြင်း (အများအားဖြင့် encoding encoding) ကိုအမှန်တကယ်အထောက်အပံ့မပေးနိုင်ပါ ။ ထို့ကြောင့်, UTF8MB4 ကို ခေတ်သစ် web application များတွင်အသုံးပြုရန်အကြံပြုသည်။
MySQLI :: Strows_set_set_name () ကိုအသုံးပြုခြင်းသည်ဒေတာဘေ့စ်ဆက်သွယ်မှု၏အမှန်တကယ်ဇာတ်ကောင်အစုံကိုအတည်ပြုရန်ရိုးရှင်းသောနှင့်ထိရောက်သောနည်းလမ်းဖြစ်သည်။ ကိုက်ညီမှုမရှိသော encoding ကြောင့်ဖြစ်ရတဲ့ပြ problems နာတွေကိုရှောင်ရှားဖို့ဇာတ်ကောင် set ကို setting ပြီးနောက်ချက်ချင်းစစ်ဆေးပါ။ ထို့အပြင်ဒေတာဇယားကွက်အဓိပ္ပာယ်ဖွင့်ဆိုချက်များ, http encoders များစသည်တို့ဖြစ်သည်။ မှန်ကန်သောသိုလှောင်မှုနှင့်အချက်အလက်များကိုပြသရန်အတွက်တူညီသောဇာတ်ကောင်ကိုတသမတ်တည်းထားရန်လိုအပ်သည်။
<span></span>
သက်ဆိုင်သောတက်(ဂ်)များ:
mysqli