လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> MySQLI :: Strows_set_name ဖြင့် MySQL configuration နှင့်ကိုက်ညီမှုရှိကြောင်းသေချာအောင်လုပ်ပါ

MySQLI :: Strows_set_name ဖြင့် MySQL configuration နှင့်ကိုက်ညီမှုရှိကြောင်းသေချာအောင်လုပ်ပါ

gitbox 2025-05-29

MySQLI :: character_set_name ဆိုတာဘာလဲ။

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 နာများအထူးသဖြင့်ဘုံဖြစ်သည်။ ထို့ကြောင့်ဆက်သွယ်မှုကိုထူထောင်ပြီးနောက်အချိန်မီသတ်မှတ်ထားသည့်ဇာတ်ကောင်ကိုစစ်ဆေးရန်ကောင်းသောအလေ့အကျင့်ဖြစ်သည်။


MySQLI :: character_set_name ကို ဘယ်လိုသုံးရမလဲ။

ဤနေရာတွင်လက်ရှိချိတ်ဆက်မှု၏ 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 နှင့်ပူးပေါင်းခြင်းဖြင့်ဇာတ်ကောင်အစုံသည်လုံးဝတသမတ်တည်းဖြစ်ကြောင်းသေချာပါစေ။


Configuration ရှေ့နောက်ညီညွတ်မှုတိုးချဲ့ခြင်း - MySQL configuration file မှသတ်မှတ်ထားသော default character ကိုဖတ်ခြင်း

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();
}
?>

ဤကုဒ်သည်လက်ရှိချိတ်ဆက်ထားသောဇာတ်ကောင်ကိုစစ်ဆေးရုံသာမကဆာဗာ၏ပုံမှန်ဇာတ်ကောင်အစုနှင့်နှိုင်းယှဉ်ပါကအချက်အလက်ရှေ့နောက်ညီညွတ်မှုကိုသေချာစေရန်အလိုအလျှောက်ထပ်တူထပ်မျှထပ်တူပြုသည်။