လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> MySQL_GEget_server_info မှပြန်လာသောကွဲပြားသောဗားရှင်းပုံစံများနှင့်၎င်းကိုမည်သို့ထိရောက်စွာကိုင်တွယ်နိုင်မည်နည်း။

MySQL_GEget_server_info မှပြန်လာသောကွဲပြားသောဗားရှင်းပုံစံများနှင့်၎င်းကိုမည်သို့ထိရောက်စွာကိုင်တွယ်နိုင်မည်နည်း။

gitbox 2025-06-09

PHP နှင့် MySQL အပေါ် အခြေခံ. application များဖွံ့ဖြိုးဆဲသောအခါ MySQL ဆာဗာ၏ဗားရှင်းအချက်အလက်များကိုကျွန်ုပ်တို့ရရှိရန်လိုအပ်သည်။ MySQL_GEget_server_info () function သည်ဤအတွက်အလွန်အသုံးဝင်သောနည်းလမ်းဖြစ်သည်။ ၎င်းသည်လက်ရှိချိတ်ဆက်ထားသော MySQL ဆာဗာ၏ဗားရှင်းနံပါတ်ကိုပြန်ပို့နိုင်သည်။ သို့သော် MySQL server မှပြန်လာသောဗားရှင်းနံပါတ်ပုံစံသည်ကိုက်ညီမှုရှိနိုင်သည်။ ၎င်းသည်ဖွံ့ဖြိုးတိုးတက်မှုအတွက်အခက်အခဲများဖြစ်ပေါ်စေလိမ့်မည်။ ဤဆောင်းပါးသည် MySQL_GEget_server_info () မှပြန်လာသောဗားရှင်းပုံစံကိုဖြည့်ဆည်းပေးလိမ့်မည်။

1 ။ MySQL_GEget_server_info () function ကိုခြုံငုံသုံးသပ်ချက်

MySQL_Get_server_info () သည် PHP တွင် built-in function တစ်ခုဖြစ်သည်။ ၎င်းသည်လက်ရှိချိတ်ဆက်ထားသော MySQL ဆာဗာဗားရှင်းနံပါတ်ကိုပြန်လည်ရောက်ရှိသည့် PHP တွင် built-in function တစ်ခုဖြစ်သည်။ ဤလုပ်ဆောင်ချက်၏ syntax သည်အလွန်ရိုးရှင်းပါသည်။

 $version = mysql_get_server_info();

ပြန်လာသော ဒေါ်လာဗားရှင်း သည်များသောအားဖြင့် MySQL server ၏ဗားရှင်းကိုကိုယ်စားပြုသော string တစ်ခုဖြစ်သည်။

2 ။ ဗားရှင်းနံပါတ် format ကို MySQL ၏ကွဲပြားခြားနားသောဗားရှင်းများကပြန်လာသည်

2.1 MySQL 5.X ဗားရှင်း

MySQL 5.x ဗားရှင်းတွင်ပြန်လည်ရောက်ရှိသောဗားရှင်းနံပါတ်သည်များသောအားဖြင့် 5.7.30 or 5.6.45 string တစ်ခုဖြစ်ပြီးအဓိကဗားရှင်းနံပါတ်နှင့် patch numpes ကိုကိုယ်စားပြုသည်။ ဥပမာအားဖြင့်:

 $version = mysql_get_server_info();
echo $version;  // ထုတ်လုပ်ခြင်း 5.7.30 သို့မဟုတ် 5.6.45

2.2 MySQL 8.x ဗားရှင်း

MySQL 8.x တွင်ပြန်လည်ရောက်ရှိသောဗားရှင်းနံပါတ်အမျိုးအစားပြောင်းလဲသွားသည်။ အဓိကဗားရှင်းနံပါတ်, အသေးအဖွဲဗားရှင်းနံပါတ်နှင့် Patch Nume တို့အပြင် -Suffix နှင့်လည်းသက်ဆိုင်သောနောက်ထပ် meta အချက်အလက်များပါ 0 င်နိုင်သည်။ ဥပမာအားဖြင့်:

 $version = mysql_get_server_info();
echo $version;  // ထုတ်လုပ်ခြင်း 8.0.22-commercial သို့မဟုတ် 8.0.19

၎င်းတို့အနက် --commercial ဆိုသည်မှာဤဗားရှင်းသည်စီးပွားဖြစ် version ဖြစ်သည်။

2.3 mariadb

MyiaDb သည် MySQL ၏ဌာနခွဲတစ်ခုဖြစ်သည်။ ဥပမာ - ဗားရှင်းနံပါတ်တွင် maliadb အမှတ်အသားပါရှိသည်။

 $version = mysql_get_server_info();
echo $version;  // ထုတ်လုပ်ခြင်း 10.3.27-MariaDB သို့မဟုတ် 10.4.14-MariaDB

ဤအချက်ကမူဗားရှင်းအချက်အလက်များကိုလုပ်ဆောင်သည့်အခါ Myiadb ဖြစ်သည်ကိုကျွန်ုပ်တို့လည်းပြုလုပ်နိုင်သည်။

3 ။ ကွဲပြားခြားနားသောပုံစံများဖြင့်ဗားရှင်းနံပါတ်များကိုထိရောက်စွာကိုင်တွယ်နိုင်မည်နည်း။

MySQL မှပြန်လာသောကွဲပြားသောဗားရှင်းပုံစံများကိုထိရောက်စွာကိုင်တွယ်နိုင်ရန်အတွက် MySQL မှပြန်လာသောအနေဖြင့်ဗားရှင်းနံပါတ်၏ရှေ့ဆက်, နောက်ဆက်သို့မဟုတ်အလုံးစုံအရှည်အရခွဲခြားသတ်မှတ်နိုင်သည်။ ဤတွင်ဘုံအပြောင်းအလဲနဲ့နည်းဗျူဟာအချို့ကိုကြည့်ပါ။

3.1 ပုံမှန်ဖော်ပြချက်များမှတဆင့်ဗားရှင်းသတင်းအချက်အလက်များကိုထုတ်ယူပါ

ပုံမှန်အသုံးအနှုန်းများသည်မတူညီသောဗားရှင်းပုံစံများကိုကိုင်တွယ်ရန်အတွက်အစွမ်းထက်သောကိရိယာတစ်ခုဖြစ်သည်။ ကျွန်ုပ်တို့သည်မူလဗားရှင်းနံပါတ်, ဗားရှင်းနံပါတ်မှအသေးအဖွဲဗားရှင်းနံပါတ်နှင့် patch နံပါတ်ကိုထုတ်ယူရန်ပုံမှန်အသုံးအနှုန်းများကိုသုံးနိုင်သည်။ ဒီမှာနမူနာကုဒ်တစ်ခုပါ။

 $version = mysql_get_server_info();

// ဟုတ်လားစစ်ဆေးပါ MariaDB
if (strpos($version, 'MariaDB') !== false) {
    // ကိုင်တွယ်ဖြေရှင်းသည် MariaDB ဗားရှင်းနံပါတ်
    preg_match('/(\d+\.\d+\.\d+)-MariaDB/', $version, $matches);
    if ($matches) {
        echo "MariaDB ထင်မြင်ချက်: " . $matches[1];
    }
}
// ကိုင်တွယ်ဖြေရှင်းသည် MySQL ဗားရှင်းနံပါတ်
else {
    preg_match('/(\d+\.\d+\.\d+)(-.*)?/', $version, $matches);
    if ($matches) {
        echo "MySQL ထင်မြင်ချက်: " . $matches[1];
    }
}

ဗားရှင်းနံပါတ်အရ 3.2 ဌာနခွဲအပြောင်းအလဲနဲ့

တခါတရံ MySQL server ၏ဗားရှင်းနံပါတ်အရကွဲပြားခြားနားသောအပြောင်းအလဲအတွက်လိုအပ်သည်။ ဥပမာအားဖြင့်, version နံပါတ်သည် MySQL 5.x ဖြစ်ပါကကျွန်ုပ်တို့သည်သီးခြား SQL syntax အချို့ကိုသုံးနိုင်သည်။ အကယ်. ၎င်းသည် MySQL 8.x ဖြစ်လျှင်ကျွန်ုပ်တို့သည်အင်္ဂါရပ်အသစ်များအသစ်ကိုကျင့်သုံးနိုင်သည်သို့မဟုတ်သီးခြား bug များကိုဖြေရှင်းနိုင်သည်။ အောက်ဖော်ပြပါသည်နံပါတ်ကို အခြေခံ. ဌာနခွဲအပြောင်းအလဲကိုအကဲဖြတ်ခြင်းနှင့်ဖျော်ဖြေခြင်း၏ဥပမာတစ်ခုဖြစ်သည်။

 $version = mysql_get_server_info();

// 获取主ဗားရှင်းနံပါတ်
preg_match('/^(\d+)\./', $version, $matches);
$majorVersion = isset($matches[1]) ? $matches[1] : 0;

if ($majorVersion >= 8) {
    echo "ယခု MySQL 8 သို့မဟုတ်更高ထင်မြင်ချက်";
    // ဉီးစီး MySQL 8.x 的相关ကိုင်တွယ်ဖြေရှင်းသည်
} elseif ($majorVersion >= 5) {
    echo "ယခု MySQL 5.x ထင်မြင်ချက်";
    // ဉီးစီး MySQL 5.x 的相关ကိုင်တွယ်ဖြေရှင်းသည်
} else {
    echo "ယခု较低ထင်မြင်ချက်的 MySQL";
    // ဉီးစီး旧ထင်မြင်ချက်的相关ကိုင်တွယ်ဖြေရှင်းသည်
}

3.3 MySQL 8.x-concal နောက်ဆက်များကိုကိုင်တွယ်ခြင်း

MySQL 8.x တွင်ဗားရှင်းနံပါတ်သည် - စာနာ စင်ရေးရာနောက်ဆက်တွင်ပါ 0 င်နိုင်သည်။ ကျွန်ုပ်တို့သည်ဤနောက်ဆက်ကိုပုံမှန်အသုံးအနှုန်းများမှတစ်ဆင့်ထုတ်ယူနိုင်ပြီးအဓိကဗားရှင်းနံပါတ်ကိုသာထုတ်ယူနိုင်သည်။

 $version = mysql_get_server_info();

// နောက်ဆက်အပိုင်းကိုဖယ်ရှားပါ
$version = preg_replace('/-.*$/', '', $version);
echo "MySQL ထင်မြင်ချက်: " . $version;

3.4 MyiaDB နှင့် MySQL compatibility ကိုကိုင်တွယ်ခြင်း

MyiaDB သည် MySQL ၏ဌာနခွဲတစ်ခုဖြစ်သည်။ ၎င်းတို့၏ဗားရှင်းနံပါတ်အမျိုးအစားသည်ဆင်တူသော်လည်း -mariadb နောက်ဆက်ရှိနိုင်သည်။ နှစ် ဦး စလုံးနှင့်လိုက်ဖက်ရန်, ၎င်းကိုတစ်ပုံစံတည်းဖြင့်ကိုင်တွယ်နိုင်သည်။

 $version = mysql_get_server_info();

if (strpos($version, 'MariaDB') !== false) {
    // MariaDB ထင်မြင်ချက်ကိုင်တွယ်ဖြေရှင်းသည်
    preg_match('/(\d+\.\d+\.\d+)-MariaDB/', $version, $matches);
    $version = $matches[1];
} else {
    // MySQL ထင်မြင်ချက်ကိုင်တွယ်ဖြေရှင်းသည်
    preg_match('/(\d+\.\d+\.\d+)(-.*)?/', $version, $matches);
    $version = $matches[1];
}

echo "数据库ထင်မြင်ချက်: " . $version;

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

MySQL_GEget_server_info () function သည်ကွဲပြားသော MySQL ဗားရှင်းများနှင့် Mariadb တို့တွင်ကွဲပြားသောဗားရှင်းနံပါတ်ပုံစံကိုပြန်ပို့နိုင်သည်။ ဤဗားရှင်းနံပါတ်များကိုထိထိရောက်ရောက်ကိုင်တွယ်နိုင်ရန်အတွက်ကျွန်ုပ်တို့သည်၎င်းတို့၏ကုဒ်သည်ကွဲပြားခြားနားသောဒေတာဘေ့စ်ဗားရှင်းအောက်တွင်ပုံမှန်အလုပ်လုပ်နိုင်ရန်အတွက်ပုံမှန်ဖော်ပြမှုများ, ဤနည်းစနစ်များသည်ဤနည်းစနစ်များသည်ဒေတာဘေ့စ်ဗားရှင်းပြောင်းလဲမှုများနှင့်လိုက်လျောညီထွေမှုနှင့်လိုက်လျောညီထွေဖြစ်အောင်လုပ်ဆောင်ခြင်းကိုပိုမိုကောင်းမွန်အောင်ပြုလုပ်နိုင်သည်။