လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> mysqli_result :: $ field_count သို့မဟုတ် unsefined သို့မဟုတ်အမှားအယွင်းရှိဖြစ်နိုင်သောအကြောင်းရင်း

mysqli_result :: $ field_count သို့မဟုတ် unsefined သို့မဟုတ်အမှားအယွင်းရှိဖြစ်နိုင်သောအကြောင်းရင်း

gitbox 2025-05-29

ဒေတာဘေ့စ်ဖွံ့ဖြိုးတိုးတက်မှုအတွက် PHP ကိုအသုံးပြုသောအခါ MySQLI extension သည်အသုံးအများဆုံးဒေတာဘေ့စ်လည်ပတ်မှုတစ်ခုဖြစ်သည်။ MySQLI_RESULT :: $ field_count property ကိုရလဒ်အနေဖြင့်ရလဒ်အနေဖြင့်လယ်ကွင်း (ကော်လံ) ကိုရရှိရန်အသုံးပြုသည်။ သို့သော်အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင် developer များက mysqli_result :: $ field_count အစီရင်ခံသောအမှားသို့မဟုတ် undefined အခြေအနေကိုကြုံတွေ့ရနိုင်သည်။ ဤဆောင်းပါးသည်ဤပြ problem နာ၏ဘုံအကြောင်းများကိုခွဲခြမ်းစိတ်ဖြာပြီးသက်ဆိုင်ရာဖြေရှင်းနည်းများကိုပေးလိမ့်မည်။

1 ။ ဘုံအမှားမက်ဆေ့ခ်ျများ

developer များကအောက်ပါတို့နှင့်ဆင်တူသည်အမှားအယွင်းများကိုကြုံတွေ့ရနိုင်သည်။

 Fatal error: Uncaught Error: Undefined property: mysqli_result::$field_count in ...

သို့မဟုတ်:

 Trying to access array offset on value of type bool

ဤအမှားကညွှန်ပြသည့်အချက်များ အရ field_count property ကိုရယူရန်ကြိုးစားသည့်အခါ MySQLI_RESULT OFF ကိုမှန်ကန်စွာပြန်မရနိုင်ကြောင်းနှင့်အရာဝတ်ထုတစ်ခုပင်မဖြစ်နိုင်ပါ။

2 ။ ဖြစ်နိုင်ချေကိုခွဲခြမ်းစိတ်ဖြာခြင်း

1 ။ query မအောင်မြင်ပါက MySQLI_RESult Object အစား မှားယွင်းစွာ ပြန်သွားပါ

SQL query ufferution ပျက်ကွက်သည့်အခါ MySQLI :: မေးမြန်းမှု () နည်းလမ်းသည် mySQLI_RESult Objects အစား မှားယွင်းသောနည်းလမ်းကို ပြန်ပို့သည်။ ရလဒ်တစ်ခုအနေဖြင့်၎င်းကိုသတ်မှတ်ထားသည့်နောက် code ကိုဖော်ပြပါက attribute ကိုကြည့်သောအခါအမှားတစ်ခုဖြစ်ပေါ်လိမ့်မည်။

နမူနာကုဒ်:

 $mysqli = new mysqli('localhost', 'root', '', 'test');
$result = $mysqli->query("SELECT * FROM non_existing_table");

echo $result->field_count; // အမှားတစ်ခုသတင်းပို့ပါ:အရာဝတ်ထုတစ်ခုမဟုတ်ပါ

ဖြေရှင်းချက် -

Field_Count ပစ္စည်းဥစ်စာပိုင်ဆိုင်မှုကိုမကြည့်မီ,

 if ($result instanceof mysqli_result) {
    echo $result->field_count;
} else {
    echo "စုံစမ်းမှုမအောင်မြင်ပါ:" . $mysqli->error;
}

2 ။ စုံစမ်းမှုကြေငြာချက်သည်ရလဒ်အနေဖြင့်ရလဒ်ကိုမပြန်ပါ။

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

နမူနာကုဒ်:

 $result = $mysqli->query("UPDATE users SET name = 'test' WHERE id = 1");
echo $result->field_count; // အမှားတစ်ခုသတင်းပို့ပါ:အရာဝတ်ထုတစ်ခုမဟုတ်ပါ

ဖြေရှင်းချက် -

MySQLI_RESULT အရာဝတ်ထုများကိုပြန်ပို့သော querts များအတွက် field_count အမျိုးအစားများကိုခွဲခြားသည်။

 $result = $mysqli->query("SELECT * FROM users");
if ($result instanceof mysqli_result) {
    echo "ကော်လံအရေအတွက်:" . $result->field_count;
} else {
    echo "မစုံစမ်းမှုရလဒ်အစုမ,Execution Status:" . ($result ? 'အောင်မြင်ခြင်း' : 'ဆုံးရှုံး');
}

3 ။ PHP သို့မဟုတ် MySQLI တိုးချဲ့မှုဗားရှင်းသည်အလွန်အသက်ကြီးလွန်းသည်, မဖွင့်ပါ

PHP သို့မဟုတ် MySQLI extension ၏အချို့သောဗားရှင်းများသည်မှန်ကန်စွာဖွင့်ထားသည့်အတွက်သက်ဆိုင်ရာဂုဏ်သတ္တိများကိုမရရှိနိုင်ပါ။

ဖြေရှင်းချက် -

PHP နှင့် MySQLI တိုးချဲ့ပညာဗားရှင်းများကိုအတည်ပြုပါ။

 phpinfo();

MySQLI extension ကို enable လုပ်ထားပါ။ PHP ဗားရှင်းသည် 7.4 နှင့်အထက်ဖြစ်သည်။

4 ။ static access ကိုအသုံးပြုပြီးအမှားအယွင်း

Field_Count သည်ဥပမာတစ်ခုဖြစ်ပြီး static mode ကို အသုံးပြု. မှားယွင်းစွာဝင်ရောက်ခြင်းသည် undefined သို့မဟုတ်အမှားအယွင်းများဖြစ်ပေါ်လိမ့်မည်။

အမှားဥပမာ -

 echo mysqli_result::$field_count; // အမှား

မှန်ကန်သောနည်းလမ်း -

 echo $result->field_count;

5 ။ JSON, API တုံ့ပြန်မှုသို့မဟုတ်အခြားအရာဝတ်ထုအသွင်အပြင်ကိုခွဲခြမ်းစိတ်ဖြာခြင်းအမှား

အချို့ဖြစ်ရပ်များတွင် developer များက API မှအချက်အလက်များယူထားသောအချက်အလက်များကဲ့သို့သော MySQLI_RESELT ကဲ့သို့သော MySQLI_RESULE အဖြစ်မှားယွင်းစွာခွဲခြမ်းစိတ်ဖြာနိုင်သည်။

 $response = file_get_contents("https://gitbox.net/api/data");
$data = json_decode($response);

echo $data->field_count; // တကယ်တော့မဟုတ်ဘူး mysqli_result ကန့်ကွက်

ဖြေရှင်းချက် -

သင်မှန်ကန်သောအမျိုးအစားအရာဝတ်ထုကိုအသုံးပြုနေကြောင်းသေချာအောင်လုပ်ပါ။

 if ($data instanceof mysqli_result) {
    echo $data->field_count;
} else {
    echo "类型အမှား,ဝင်ရောက်. မရပါ field_count";
}

3 ။ အကြံပြုထားသောအထွေထွေဆုံးဖြတ်ချက်ဖွဲ့စည်းပုံ

Code ၏ကြံ့ခိုင်မှုကိုမြှင့်တင်ရန်အတွက်,

 function safe_query($mysqli, $sql) {
    $result = $mysqli->query($sql);
    if ($result instanceof mysqli_result) {
        return $result;
    } else {
        error_log("SQL Error: " . $mysqli->error);
        return false;
    }
}

// ဘယ်လိုသုံးရမလဲ
$result = safe_query($mysqli, "SELECT * FROM users");
if ($result) {
    echo "ကော်လံအရေအတွက်:" . $result->field_count;
}

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

MySQLI_RESULT :: $ field_count သည်အမှားတစ်ခုဖြစ်သည့်အကြောင်းပြချက်သို့မဟုတ် developer သည်ပြန်လာသောရလဒ်အမျိုးအစား (သို့) အသုံးပြုမှုဝန်းကျင်ကိုမကိုင်တွယ်နိုင်သောကြောင့် undefined သည်မှားယွင်းသောကြောင့်ဖြစ်သည်။ အထက်ပါနည်းလမ်းများမှတစ်ဆင့် developer များသည်ထိုကဲ့သို့သောအမှားအယွင်းများကိုထိရောက်စွာရှောင်ရှားနိုင်ပြီးပိုမိုလုံခြုံစိတ်ချရသော PHP ဒေတာဘေ့စ်စစ်ဆင်ရေးကုဒ်များကိုရေးဆွဲနိုင်သည်။