လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> MySQLI_RESult Object တွင်နည်းလမ်းတစ်ခုကိုရိုက်ရန်ကြိုးစားပါ

MySQLI_RESult Object တွင်နည်းလမ်းတစ်ခုကိုရိုက်ရန်ကြိုးစားပါ

M66 2025-05-28

ဒေတာဘေ့စ်လုပ်ငန်းများအတွက် PHP ကိုအသုံးပြုသောအခါ၎င်းသည်အမှားအယွင်းများကိုကြုံတွေ့ရရန်ဘုံဖြစ်ရပ်တစ်ခုဖြစ်သည်။ ၎င်းတို့အနက် "mysqli_result မဟုတ်သည့်အရာဝတ်ထုတစ်ခုတွင်နည်းလမ်းတစ်ခုကိုခေါ်ဆိုခြင်း" အမှားသည်ဒေတာဘေ့စ်စုံစမ်းမှုရလဒ်များနှင့်သက်ဆိုင်သည်။ ဒီအမှားရဲ့အကြောင်းရင်းကိုခွဲခြမ်းစိတ်ဖြာပြီးဘယ်လိုဖြေရှင်းရမလဲဆိုတာအကြံဥာဏ်တွေပေးကြပါရအောင်။

1 ။ နောက်ခံအမှား

PHP တွင်ဒေတာဘေ့စ်လုပ်ငန်းများအတွက် MySQLI extension ကိုအသုံးပြုသောအခါ, ကျွန်ုပ်တို့သည်များသောအားဖြင့်မေးမြန်းချက်များကိုအများအားဖြင့်အလုပ်ထုတ်ယူပြီးဒေ တာ ဘေ့စ်မှရရှိသောရလဒ်ရရှိရန်မျှော်လင့်သည်။ ဤအရာဝတ်ထုသည်စုံစမ်းမှု၏ရလဒ်များကိုရယူရန်နည်းလမ်းများစီးရီးများကိုသုံးနိုင်သည်။

ဥပမာအားဖြင့်, အောက်ပါ SQL query ကို Execute:

 $sql = "SELECT * FROM users WHERE id = 1";
$result = $mysqli->query($sql);

$ ရလဒ် variable ကို mysqli_result အရာဝတ်ထုဖြစ်သင့်သည်။ အကယ်. စုံစမ်းမှုသည်အောင်မြင်ပါကစုံစမ်းမှုအချက်အလက်ရယူရန်၎င်းကိုဆက်လက်အသုံးပြုနိုင်သည်။

 $row = $result->fetch_assoc();  // ဒေတာလိုင်းတစ်ခုရယူပါ

သို့သော်အချို့ဖြစ်ရပ်များတွင် ဒေါ်လာရလဒ်သည် MySQLI_RESELT အမျိုးအစားများဖြစ်သော်လည်းအခြားအရာဝတ်ထုတစ်ခုသို့မဟုတ် variable တစ်ခုဖြစ်နိုင်သည်။ ဤအချိန်တွင် "mysqli_result" မဟုတ်သည့်အရာဝတ်ထုတစ်ခုတွင်နည်းလမ်းတစ်ခုကိုခေါ်ဆိုခြင်းကဲ့သို့သောအမှားတစ်ခုရှိသည်။

2 ။ အမှား၏အကြောင်းရင်း

ဤအမှား၏အကြောင်းရင်းများသည်များသောအားဖြင့်အောက်ပါတို့ဖြစ်သည်။

  • Query မအောင်မြင်ပါ ။ အကယ်. စုံစမ်းမှု () နည်းလမ်းသည် execute လုပ်ရန်ပျက်ကွက်ပါက MySQLI_RESult Object အစား မှားယွင်းစွာ ပြန်ယူသည်။ ယခုအချိန်တွင်သင်သည် Fetch_AssoC () သို့မဟုတ်အခြားနည်းလမ်းများ (သို့) အခြားနည်းလမ်းများဖြင့်ဆက်လက်ခေါ်ဆိုပါကအမှားအယွင်းတစ်ခုပေါ်ပေါက်လာလိမ့်မည်။

    ဥပမာအားဖြင့်:

     $result = $mysqli->query($sql);
    if ($result === false) {
        die("စုံစမ်းမှုမအောင်မြင်ပါ: " . $mysqli->error);
    }
    

    ဤကုဒ်သည် query ပျက်ကွက်သည့်နည်းစနစ်ကို မအောင်မြင်သော နည်းလမ်းကိုမခေါ်နိုင်ကြောင်း,

  • Connection Error : ဒေတာဘေ့စ်ဆက်သွယ်မှုမအောင်မြင်ပါက ဒေါ်လာ MySQLI Office ကိုယ်တိုင်သည်အလုပ်မလုပ်ပါ။ ဒေတာဘေ့စ် connection အောင်မြင်မှုသည်သေချာပါစေ:

     $mysqli = new mysqli("localhost", "user", "password", "database");
    if ($mysqli->connect_error) {
        die("ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $mysqli->connect_error);
    }
    

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

  • Call Error : တခါတရံယုတ္တိရှိသည့်ပြ problems နာများကြောင့် program_assoc () ကဲ့သို့သောနည်းလမ်းများကိုမမှန်ကန်သောနေရာတစ်ခုဖြင့်ခေါ်ဆိုနိုင်သည့်နည်းလမ်းများကိုမမှန်ကန် ပါ

    ဒီပြ problem နာကိုဖြေရှင်းတဲ့အခါ Debug Code ကို MySQLI_RESult Object ဆိုတာကိုအတည်ပြုဖို့ ဒေါ်လာရလာဒ် အမျိုးအစားကိုစစ်ဆေးဖို့သင်ထည့်နိုင်တယ်။

     var_dump($result);
    

3 ။ ဖြေရှင်းနည်း

ဤအမျိုးအစားအမှားကိုရှောင်ရှားရန် $ ရလဒ်သည် စုံစမ်းမှုစစ်ဆင်ရေးအပြီးတွင်မှန်ကန်သော MySQLI_RESULT OFF quare ကိုစစ်ဆေးပါ။ ဒီနေရာမှာတိုးတက်လာတဲ့ကုဒ်ဥပမာတစ်ခုပါ။

 <?php
$mysqli = new mysqli("localhost", "user", "password", "database");

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

$sql = "SELECT * FROM users WHERE id = 1";
$result = $mysqli->query($sql);

// စုံစမ်းမှုအောင်မြင်မှုရှိမရှိစစ်ဆေးပါ
if ($result === false) {
    die("စုံစမ်းမှုမအောင်မြင်ပါ: " . $mysqli->error);
}

// လုပ်ငန်းစဉ်မေးမြန်းချက်ရလဒ်များ
while ($row = $result->fetch_assoc()) {
    echo "အသုံးပြုသူID: " . $row['id'] . " အသုံးပြုသူ名: " . $row['name'] . "<br>";
}
?>

Query () method ၏ပြန်လာတန်ဖိုးကိုစစ်ဆေးခြင်းအားဖြင့်မှန်ကန်သော MySQLI_RESult Object ကိုပြန်ပို့ပါ။

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

PHP တွင် MySQLI extension ကိုအသုံးပြုသောအခါ, အမှားအယွင်းများပျက်ကွက်မှုများသို့မဟုတ်မမှန်ကန်သောအရာဝတ်ထုအမျိုးအစားများနှင့်အတူအမှားအယွင်းများမကြာခဏပေါ်ပေါက်ပါတယ်။ ရလဒ်အလုံးအရင်းသည်စုံစမ်းမှုတစ်ခုစီ၏စုံစမ်းမှုတစ်ခုချင်းစီပြီးနောက်တရားဝင်သည်နှင့်မှားယွင်းသောအရာဝတ်ထုပေါ်ရှိခေါ်ဆိုမှုနည်းစနစ်များကိုရှောင်ရှားရန်ဤအမှားအမျိုးအစားကိုဖြေရှင်းရန်သော့ချက်ဖြစ်သည်။