လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> MySQLI :: SET_CHARSet ဇာတ်ကောင် set ကိုသတ်မှတ်ပြီးနောက်တွင်ဒေတာအနေဖြင့်ဒေတာကိုရေးသည့်အခါဇာတ်ကောင်များသည်အမှားအယွင်းများကိုမဖြစ်စေနိုင်ကြောင်းမည်သို့သေချာစေနိုင်သနည်း။

MySQLI :: SET_CHARSet ဇာတ်ကောင် set ကိုသတ်မှတ်ပြီးနောက်တွင်ဒေတာအနေဖြင့်ဒေတာကိုရေးသည့်အခါဇာတ်ကောင်များသည်အမှားအယွင်းများကိုမဖြစ်စေနိုင်ကြောင်းမည်သို့သေချာစေနိုင်သနည်း။

gitbox 2025-09-04

<span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// Pre- လွတ်လပ်သောကုဒ်ဥပမာ</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ပရိုဂရမ်ပတ် 0 န်းကျင်ကိုစတင်ပါ...&lt;br&gt;"</span></span><span>;
</span><span><span class="hljs-variable">$version</span></span><span> = </span><span><span class="hljs-title function_ invoke__">phpversion</span></span><span>();
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"PHPထင်မြင်ချက်:"</span></span><span> . </span><span><span class="hljs-variable">$version</span></span><span> . </span><span><span class="hljs-string">"&lt;br&gt;"</span></span><span>;
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

ဒေတာဘေ့စ်လုပ်ငန်းများအတွက် PHP ၏ MySQLI extension ကိုအသုံးပြုသောအခါဇာတ်ကောင်သတ်မှတ်ချက်ပြ problems နာများသည်အချက်အလက်များရေးသားခြင်းတွင်အမှိုက်များသို့မဟုတ်အမှားအယွင်းများဖြစ်ပေါ်စေသည့်အပိုအချက်များအနက်မှတစ်ခုဖြစ်သည်။ MySQLI :: SET_CHARSet ဆိုသည်မှာဒေတာဘေ့စ်ဆက်သွယ်မှုဇာတ်ကောင်ကိုသတ်မှတ်ရန်တရားဝင်အကြံပြုထားသောနည်းလမ်းဖြစ်သည်။ သို့သော်ဒေတာကိုဒေတာဘေ့စ်သို့မှန်ကန်စွာရေးသားရန်သေချာစေရန်အသေးစိတ်အချက်အလက်များကိုဂရုပြုရန်လိုအပ်သည်။

1 ။ ဇာတ်ကောင်အစုံ setting များအတွက်အခြေခံနည်းလမ်းများ

 <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>-&gt;connect_errno) {
    </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>-&gt;connect_error);
}

</span><span><span class="hljs-comment">// ဇာတ်ကောင်ကိုသတ်မှတ်ပါ utf8mb4</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;</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><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>-&gt;error);
}

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ဇာတ်ကောင်အစုံအောင်မြင်စွာ set ကို: "</span></span><span> . </span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">character_set_name</span></span><span>();
</span></span>

Emf8MB4 သည် Emoji ကဲ့သို့သောအထူးအက္ခရာများအပါအ 0 င် Unicode အပြည့်ကိုထောက်ပံ့သောကြောင့် UTF8MB4 သည်အကြံပြုထားသောဇာတ်ကောင်သတ်မှတ်ချက်ဖြစ်သည်။

2 ။ ဒေတာဘေ့စ်စားပွဲနှင့်ကွင်းဆင်းဇာတ်ကောင်များကိုတသမတ်တည်းဖြစ်ကြောင်းသေချာပါစေ

Connection character set ကိုမှန်ကန်စွာသတ်မှတ်ထားရင်တောင် Database စားပွဲဒါမှမဟုတ်လယ်ကွင်းရဲ့ဇာတ်ကောင်အစုံဟာမတူဘူးဆိုရင် garbled ပေါ်လာလိမ့်မယ်။ Checklists နှင့် Fields တို့၏ဇာတ်ကောင်များကို SQL မှကြည့်ရှုနိုင်သည်။

 <span><span><span class="hljs-keyword">SHOW</span></span><span> </span><span><span class="hljs-keyword">CREATE</span></span><span> </span><span><span class="hljs-keyword">TABLE</span></span><span> your_table;
</span></span>

Table နှင့် Field ဇာတ်ကောင်ကို UTF8MB4 သတ်မှတ်ရန်သတ်မှတ်ရန်အကြံပြုသည်။

 <span><span><span class="hljs-keyword">ALTER</span></span><span> </span><span><span class="hljs-keyword">TABLE</span></span><span> your_table </span><span><span class="hljs-keyword">CONVERT</span></span><span> </span><span><span class="hljs-keyword">TO</span></span><span> </span><span><span class="hljs-type">CHARACTER</span></span><span> </span><span><span class="hljs-keyword">SET</span></span><span> utf8mb4 </span><span><span class="hljs-keyword">COLLATE</span></span><span> utf8mb4_unicode_ci;
</span></span>

3 ။ ပြင်ဆင်ထားသည့်ထုတ်ပြန်ချက်များကိုသုံးပါ

SQL strings များကိုတိုက်ရိုက် splicing သည် Encoding ပြ problems နာများသို့မဟုတ် SQL Injection Nights သို့မဟုတ် SQL Injection Nights များဖြစ်သည်။ အချက်အလက်များကိုမှန်ကန်သော encoding တွင်ရေးထားရန်သေချာစေရန်ကြိုတင်သတ်မှတ်ထားသောထုတ်ပြန်ချက်များကိုသုံးပါ။

 <span><span><span class="hljs-variable">$stmt</span></span><span> = </span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">prepare</span></span><span>(</span><span><span class="hljs-string">"INSERT INTO your_table (name, content) VALUES (?, ?)"</span></span><span>);
</span><span><span class="hljs-variable">$name</span></span><span> = </span><span><span class="hljs-string">"အသုံးပြုသူကိုစစ်ဆေးပါ"</span></span><span>;
</span><span><span class="hljs-variable">$content</span></span><span> = </span><span><span class="hljs-string">"အထူးဇာတ်ကောင်များပါ 0 င်သည့်အကြောင်းအရာအချို့မှာဤတွင်ဖြစ်သည် ??"</span></span><span>;
</span><span><span class="hljs-variable">$stmt</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">bind_param</span></span><span>(</span><span><span class="hljs-string">"ss"</span></span><span>, </span><span><span class="hljs-variable">$name</span></span><span>, </span><span><span class="hljs-variable">$content</span></span><span>);
</span><span><span class="hljs-variable">$stmt</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">execute</span></span><span>();
</span><span><span class="hljs-variable">$stmt</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">close</span></span><span>();
</span></span>

MySQLI သည် connection character set ကို အခြေခံ. parameters များကိုအလိုအလျောက်ပြုလုပ်လိမ့်မည်။

4 ။ ဝဘ်စာမျက်နှာနှင့် PHP ဖိုင် encoding သည်တသမတ်တည်းဖြစ်ကြောင်းသေချာပါစေ

  • PHP ဖိုင်ကို UTF-8 အဖြစ်သိမ်းဆည်းထားသင့်သည်။

  • HTML စာမျက်နှာသည်ဇာတ်ကောင် set ကိုကြေငြာသင့်သည်။

 <span><span><span class="hljs-tag">&lt;<span class="hljs-name">meta</span></span></span><span> </span><span><span class="hljs-attr">charset</span></span><span>=</span><span><span class="hljs-string">"UTF-8"</span></span><span>&gt;
</span></span>

ဤနည်းအားဖြင့်အသုံးပြုသူမှထည့်သွင်းထားသောအချက်အလက်များ, PHP မှပြုလုပ်သော strings များနှင့်ဒေတာဘေ့စ်သို့ရေးသားထားသောဇာတ်ကောင်သည်တသမတ်တည်းရှိနေဆဲဖြစ်သည်။

5 ။ အကျဉ်းချုပ်

  1. Connection character set ကို $ MySQLI-> Set_charet ("UTF8MB4") ကို သုံး. သတ်မှတ်ပါ။

  2. ဒေတာဘေ့စ်, စားပွဲတင်နှင့်ကွင်းဆင်းဇာတ်ကောင်အစုံသည် connection character set နှင့်ကိုက်ညီကြောင်းသေချာပါစေ။

  3. အချက်အလက်များကိုထည့်သွင်းရန် Preprocessing ထုတ်ပြန်ချက်များကိုအသုံးပြုရန်ကြိုးစားပါ။

  4. PHP ဖိုင်များနှင့်စာမျက်နှာများကို UTF-8 အဖြစ် encoded ကြောင်းသေချာပါစေ။

ဒေတာများကိုဒေတာဘေ့စ်သို့ဒေတာကိုအကြီးမြတ်ဆုံးအထိရေးသောအခါဇာတ်ကောင်အမှားများကိုရှောင်ရှားရန်ဤအဆင့်များကိုလိုက်နာပါ။

  • သက်ဆိုင်သောတက်(ဂ်)များ:

    mysqli