ဒေတာဘေ့စ်လုပ်ငန်းများအတွက် PHP ကိုအသုံးပြုသောအခါ၎င်းသည်အမှားအယွင်းများကိုကြုံတွေ့ရရန်ဘုံဖြစ်ရပ်တစ်ခုဖြစ်သည်။ ၎င်းတို့အနက် "mysqli_result မဟုတ်သည့်အရာဝတ်ထုတစ်ခုတွင်နည်းလမ်းတစ်ခုကိုခေါ်ဆိုခြင်း" အမှားသည်ဒေတာဘေ့စ်စုံစမ်းမှုရလဒ်များနှင့်သက်ဆိုင်သည်။ ဒီအမှားရဲ့အကြောင်းရင်းကိုခွဲခြမ်းစိတ်ဖြာပြီးဘယ်လိုဖြေရှင်းရမလဲဆိုတာအကြံဥာဏ်တွေပေးကြပါရအောင်။
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" မဟုတ်သည့်အရာဝတ်ထုတစ်ခုတွင်နည်းလမ်းတစ်ခုကိုခေါ်ဆိုခြင်းကဲ့သို့သောအမှားတစ်ခုရှိသည်။
ဤအမှား၏အကြောင်းရင်းများသည်များသောအားဖြင့်အောက်ပါတို့ဖြစ်သည်။
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);
ဤအမျိုးအစားအမှားကိုရှောင်ရှားရန် $ ရလဒ်သည် စုံစမ်းမှုစစ်ဆင်ရေးအပြီးတွင်မှန်ကန်သော 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 ကိုပြန်ပို့ပါ။
PHP တွင် MySQLI extension ကိုအသုံးပြုသောအခါ, အမှားအယွင်းများပျက်ကွက်မှုများသို့မဟုတ်မမှန်ကန်သောအရာဝတ်ထုအမျိုးအစားများနှင့်အတူအမှားအယွင်းများမကြာခဏပေါ်ပေါက်ပါတယ်။ ရလဒ်အလုံးအရင်းသည်စုံစမ်းမှုတစ်ခုစီ၏စုံစမ်းမှုတစ်ခုချင်းစီပြီးနောက်တရားဝင်သည်နှင့်မှားယွင်းသောအရာဝတ်ထုပေါ်ရှိခေါ်ဆိုမှုနည်းစနစ်များကိုရှောင်ရှားရန်ဤအမှားအမျိုးအစားကိုဖြေရှင်းရန်သော့ချက်ဖြစ်သည်။