လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> MySQLI :: get_charet ကိုသုံးပါ။ အင်္ဂလိပ်မဟုတ်သောဇာတ်ကောင်များကိုမှန်ကန်စွာလုပ်ဆောင်သည်ကိုစစ်ဆေးပါ

MySQLI :: get_charet ကိုသုံးပါ။ အင်္ဂလိပ်မဟုတ်သောဇာတ်ကောင်များကိုမှန်ကန်စွာလုပ်ဆောင်သည်ကိုစစ်ဆေးပါ

M66 2025-05-25

MySQL databases များကို MySQL databases များကိုလုပ်ကိုင်ရန် PHP ကိုအသုံးပြုသည့်အခါ developer များအတွက်ပြ issues နာများအနက်ပြ issues နာများမှာအထူးသဖြင့်တရုတ်, ဂျပန်နှင့်ကိုရီးယားကဲ့သို့သောအင်္ဂလိပ်ဇာတ်ကောင်များပါ 0 င်သည့်အခါ developer များအတွက်ပြ issues နာများထဲမှတစ်ခုဖြစ်သည်။ လူအများစုကဒေတာဘေ့စ်ကိုထည့်ခြင်းသို့မဟုတ်မေးမြန်းခြင်းပြုလုပ်ပြီးနောက်တရုတ်နိုင်ငံ၏ carbled code ကိုကြုံတွေ့ရသည်။

ဤဆောင်းပါးသည် ကျွန်ုပ်၏ MySQLI :: Get_charset Set Set Set Set Set Set Setting Set Set Setting Set Set Set Set Set Set Settings (ဥပမာတရုတ်) မှန်ကန်စွာ encoded နိုင်အောင် MySQLI Connection Settings ကိုစစ်ဆေးရန်ဤဆောင်းပါးသည်ရှင်းပြပါမည်။

အဘယ်ကြောင့်ဇာတ်ကောင်အစုံအရေးကြီးသနည်း

MySQL သည် လက်တင်အမေရိက , UTF8 , UTF8MB4 စသည့်ဇာတ်ကောင်အချို့ကိုထောက်ပံ့သည်။ အကယ်. သင်၏ 0 က်ဘ်ဆိုဒ်တွင်တရုတ်အကြောင်းအရာပါ 0 င်ပါက UTF8MB4 နှင့် Unicode ဇာတ်ကောင်အားလုံးနီးပါးနှင့်သဟဇာတဖြစ်သောကြောင့်ဖြစ်သည်။

သို့သော်ဒေတာဘေ့စ်အဆင့်တွင်သတ်မှတ်ထားသည့်အက်ခရာတစ်ခုကိုသတ်မှတ်ခြင်းသည်မလုံလောက်ပါ။ ဒီလိုမှမဟုတ်ရင်ဒေတာဘေ့စ်ကိုပို့တဲ့အချက်အလက်တွေကိုမရောက်ခင်မှားယွင်းစွာ encoded လုပ်ပြီး,

MySQLI :: Get_charset ၏အသုံးပြုမှုကဘာလဲ

MySQLI :: Get_charset Method သည်လက်ရှိဆက်သွယ်မှုမှအသုံးပြုသောအချက်အလက်များကိုကြည့်ရှုရန်နှင့် connection set အသေးစိတ်အချက်အလက်များပါ 0 င်သည့်အရာဝတ်ထုတစ်ခုကိုပြန်လည်ကြည့်ရှုရန်အသုံးပြုနိုင်သည်။ ဤနည်းလမ်းဖြင့်ဆက်သွယ်မှုကိုမှန်ကန်စွာသတ်မှတ်ရန်သေချာစေရန်သင်ရှာဖွေတွေ့ရှိကုဒ်ကိုရေးနိုင်သည်။

နမူနာကုဒ်

 <?php
// ဒေတာဘေ့စ် connection configuration ကို
$host = 'localhost';
$user = 'dbuser';
$password = 'dbpassword';
$database = 'testdb';

// ဖန်တီး mysqli ကန့်ကွက်
$mysqli = new mysqli($host, $user, $password, $database);

// ဆက်သွယ်မှုအောင်မြင်မှုရှိမရှိစစ်ဆေးပါ
if ($mysqli->connect_error) {
    die('ဆက်သွယ်မှုမအောင်မြင်ပါ: ' . $mysqli->connect_error);
}

// ဇာတ်ကောင်ကိုသတ်မှတ်ပါ utf8mb4(အကြံပြုထားသောတရုတ်နှင့် Emoji)
if (!$mysqli->set_charset('utf8mb4')) {
    die('ဇာတ်ကောင် set ကို setting အမှား: ' . $mysqli->error);
}

// အသုံးပြု get_charset လက်ရှိဇာတ်ကောင်အစုံစစ်ဆေးပါ
$charset_info = $mysqli->get_charset();

echo "လက်ရှိဇာတ်ကောင်အစုံ: " . $charset_info->charset . "<br>";
echo "ဇာတ်ကောင်သတ်မှတ်ချက်ဖော်ပြချက်: " . $charset_info->comment . "<br>";
echo "ဇာတ်ကောင် set directory: " . $charset_info->dir . "<br>";
echo "အများဆုံး byte အရှည်: " . $charset_info->max_length . "<br>";

// စမ်းသပ်တရုတ်ဒေတာထည့်ပါ
$sql = "INSERT INTO test_table (content) VALUES ('တရုတ်စာလုံးများကိုစမ်းသပ်ပါ')";
if ($mysqli->query($sql)) {
    echo "အောင်မြင်စွာတရုတ်ဒေတာဖြည့်စွက်。<br>";
} else {
    echo "မအောင်မြင်ပါ: " . $mysqli->error . "<br>";
}

// ဒေတာဘေ့စ်မှဒေတာများကိုစမ်းသပ်စစ်ဆေးပါ
$result = $mysqli->query("SELECT content FROM test_table ORDER BY id DESC LIMIT 1");
if ($result) {
    $row = $result->fetch_assoc();
    echo "အကြောင်းအရာကိုဖတ်ပါ: " . $row['content'] . "<br>";
} else {
    echo "စုံစမ်းမှုမအောင်မြင်ပါ: " . $mysqli->error . "<br>";
}

// ဆက်သွယ်မှုကိုပိတ်ပါ
$mysqli->close();
?>

မှတ်သားရန်အရာ

  1. ဒေတာဘေ့စ်စားပွဲနှင့်ကွင်းဆင်းဇာတ်ကောင်အစုံသည်တသမတ်တည်းဖြစ်သင့်သည် သင်၏စားပွဲဝိုင်းနှင့်ကွက်လပ်များ၏ဇာတ်ကောင်အစုသည် UTF8MB4 နှင့်ပါ 0 င်ကြောင်းသေချာစေပါ။ SQL ကိုအောက်ပါအတိုင်းအသုံးပြုနိုင်သည်။

     SHOW CREATE TABLE test_table;
    

    မရရှိလျှင်, သင်သည် တသမတ်တည်း ဇာတ်ကောင်ကိုပြောင်းလဲနိုင်သည်။

  2. စမ်းသပ်ခြင်းစာမျက်နှာကုဒ် <br> <br> သင်၏ PHP PHOPH Page ကိုယ်တိုင်ကို UTF-8 encoding နှင့်အတူသိမ်းဆည်းထားကြောင်းနှင့် HTTP တုန့်ပြန်မှုခေါင်းစဉ်တွင်မှန်ကန်သော အကြောင်းအရာအမျိုးအစားကို ကြေငြာပါ။

     header('Content-Type: text/html; charset=utf-8');
    
  3. Subugging <br> ကိုလွယ်ကူချောမွေ့စေရန် MySQLI_REPORPEST ကိုသုံးပါ လျှို့ဝှက်အမှားများကိုလွယ်ကူချောမွေ့စေရန်အတွက် MySQLI Reporting Function ကိုဖွင့်နိုင်သည်။

     mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
    
ဆက်စပ်အကြောင်းအရာ