MySQLI extension ကို အသုံးပြု. PHP ရှိဒေတာဘေ့စ်သို့ချိတ်ဆက်ရန် MySQLI_RESURT OFF of MySQLI_RESURT OFF of the MySQLI_RESELT အရာဝတ်ထု၏နောက်လာမည့်မှတ်တမ်းများကိုရရှိရန်အသုံးပြုသည်။ ဤနည်းလမ်းသည်တွဲဖက်အမည်ကိုသော့အမည်နှင့်သက်ဆိုင်ရာအချက်အလက်များနှင့်သက်ဆိုင်သောအချက်အလက်များအဖြစ်ပါ 0 င်သော Associative ခင်းကျင်းမှုကိုပြန်လည်ရရှိစေသည်။ ပြန်လာရန်မှတ်တမ်းများမရှိတော့ပါက FETC_AsSOC () သည် NULL REVERY ။ သို့သော် developer များစွာသည်အသုံးပြုနေစဉ်အတွင်းပြ a နာတစ်ခု နှင့် ကြုံတွေ့ရလိမ့်မည်။ ဤဆောင်းပါးသည်ဤပြ problem နာ၏အကြောင်းရင်းများကိုစူးစမ်းလေ့လာပြီးဖြေရှင်းနည်းများပေးလိမ့်မည်။
Fetch_AssoC () ကို MySQLI_RESELT ကို ပြန်ပို့ရန် MySQLI_RESULE ကို ပြန်လည်ခေါ်ယူခြင်းသည်ဖြစ်နိုင်ချေရှိသောအကြောင်းပြချက်များစွာရှိသည်။
အသုံးအများဆုံးဖြစ်ရပ်မှာကွပ်မျက်ခံရသည့်စုံစမ်းမှုသည်မည်သည့်အချက်အလက်မဆိုပြန်ပို့ခြင်းမဟုတ်ပါ။ ဥပမာအားဖြင့်, အကယ်. သင်သည် Select Selection ကို execute လုပ်ပါကဒေတာဘေ့စ ် တွင်မှတ်တမ်းမရှိပါ ။ ၎င်းသည်အမှားတစ်ခုမဟုတ်ပါ, သို့သော်ပုံမှန်အပြုအမူတစ်ခုမှာမူပြန်ဆိုရန်အချက်အလက်များမရှိတော့ကြောင်းညွှန်ပြသည်။
$query = "SELECT * FROM users WHERE id = 10"; // ယူဆချက် id = 10 မတည်ရှိပါဘူး
$result = $mysqli->query($query);
$row = $result->fetch_assoc();
if ($row === null) {
echo "မှတ်တမ်းမရှိပါ!";
}
SQL query strespution တွင်အမှားတစ်ခုရှိပါက MySQLI_QUERY () သည် မှားယွင်းသော နောက်သို့ ပြန်ပို့လိမ့်မည်။ အကယ်. သင်ကရှာဖွေမှုရလဒ်ကိုအောင်မြင်စွာကွပ်မျက်ခံရခြင်းရှိမရှိကိုသင်မစစ်ဆေးပါကစုံစမ်းမှုကွပ်မျက်သည်အောင်မြင်သည်ဟုသင်မှားယွင်းစွာထင်ကောင်းထင်လိမ့်မည်။
$query = "SELEC * FROM users WHERE id = 10"; // SQL Syntax အမှား
$result = $mysqli->query($query);
if ($result === false) {
echo "စုံစမ်းမှုမအောင်မြင်ပါ: " . $mysqli->error;
}
ရလဒ်အပြည့်အဝထုတ်ယူထားသည့်အချက်အလက်များကိုလုံးဝထုတ်ယူခဲ့ပါက Fetch_AssoC () ကိုခေါ်သည့်အခါနောက်ဆက်တွဲ fetch_assoc () ခေါ်ဆိုမှုများသည် Null ပြန်လာမည်, ဆိုလိုသည်မှာ Qualth သည်ပြန်လည်ပေးပို့ရန်နောက်ထပ်အချက်အလက်များမရှိသေးပါ။
$query = "SELECT * FROM users";
$result = $mysqli->query($query);
while ($row = $result->fetch_assoc()) {
echo $row['name'] . "<br>";
}
// ဒီမှာနောက်တဖန်ခေါ် fetch_assoc() ပြန်လာပါလိမ့်မယ် null
$row = $result->fetch_assoc();
if ($row === null) {
echo "ဒေတာမရှိတော့ပါ!";
}
အကယ်. စုံစမ်းမှုစဉ်အတွင်းဒေတာဘေ့စ်ဆက်သွယ်မှုအမှားတစ်ခုသို့မဟုတ်အခြားပြ problem နာတစ်ခုဖြစ်ပါ က MySQLI_RESULT OFF သည်အချက်အလက်များကိုမှန်ကန်စွာပြန်ပို့မည်မဟုတ်ပါ။ ဤအချိန်တွင် MySQLI ၏အမှားအယွင်းကိုစစ်ဆေးခြင်းအားဖြင့်ပြ the နာကို debug လုပ်ပြီးဖြေရှင်းနိုင်သည်။
$mysqli = new mysqli('localhost', 'root', 'password', 'database');
if ($mysqli->connect_error) {
die('ဆက်သွယ်မှုမအောင်မြင်ပါ: ' . $mysqli->connect_error);
}
$query = "SELECT * FROM users";
$result = $mysqli->query($query);
if ($result === false) {
echo "စုံစမ်းမှုမအောင်မြင်ပါ: " . $mysqli->error;
}
ပထမ ဦး စွာကွပ်မျက်ခံရသောစုံစမ်းမှုသည်တရားဝင်ရလဒ်များကိုပြန်ပို့ရန်သေချာစေပါ။ သင်မျှော်လင့်ချက်အောင်မြင်မှုအောင်မြင်မှုရှိမရှိစစ်ဆေးခြင်းအားဖြင့်မလိုအပ်သောအမှားများကိုသင်ရှောင်ရှားနိုင်သည်။
$query = "SELECT * FROM users WHERE id = 10";
$result = $mysqli->query($query);
if ($result === false) {
echo "စုံစမ်းမှုမအောင်မြင်ပါ: " . $mysqli->error;
} else {
$row = $result->fetch_assoc();
if ($row) {
echo "မှတ်တမ်းကိုရှာပါ: " . $row['name'];
} else {
echo "မှတ်တမ်းမရှိပါ!";
}
}
SQL ကြေငြာချက်သည်အမှားအယွင်းများကိုသေချာအောင်လုပ်ပါ။ အသေးစိတ်အမှားအချက်အလက်များကို MySQLI_ERRORRORR () သို့မဟုတ် mySQli_errno () လုပ်ဆောင်ချက်များကို အသုံးပြု. ရယူနိုင်သည်။
$query = "SELECT * FROM users WHERE id = 10";
$result = $mysqli->query($query);
if ($result === false) {
echo "စုံစမ်းမှုမအောင်မြင်ပါ: " . $mysqli->error;
}
ဒေတာဘေ့စ်ဆက်သွယ်မှုနှင့်အတူပြ problem နာမရှိကြောင်းအတည်ပြုပါ။ ဆက်သွယ်မှုအမှားများသည်မကြာခဏမေးမြန်းခြင်းပျက်ကွက်မှု၏ဘုံအကြောင်းများအနက်မှတစ်ခုဖြစ်သည်။
$mysqli = new mysqli('localhost', 'root', 'password', 'database');
if ($mysqli->connect_error) {
die('ဆက်သွယ်မှုမအောင်မြင်ပါ: ' . $mysqli->connect_error);
}
debugging လုပ်ငန်းစဉ်အတွင်း Var_Dump () သို့မဟုတ် print_r () furctions များကဲ့သို့သောလုပ်ဆောင်မှုများကိုသင်ပြန်လာသည့်ရလဒ်များကိုစစ်ဆေးရန်ရလဒ်ပါ 0 င်သည့်အကြောင်းအရာများကိုထုတ်လွှင့်ရန်။
$query = "SELECT * FROM users";
$result = $mysqli->query($query);
var_dump($result); // စုံစမ်းမှုရလဒ်အရာဝတ်ထုကိုစစ်ဆေးပါ
MySQLI_RESELT ၏ MySQLI_RESELT ၏ MySQLI_RESELT ၏နည်းလမ်းသည်မမှားပါ။ Null ပြန်လာရန်မမှားပါ။ ဤအပြုအမူသည် SQL သည်မှန်ကန်စွာကွပ်မျက်ခံရသည်ဖြစ်စေ, ဒေတာဘေ့စ်ဆက်သွယ်မှုသည်ပုံမှန်ဖြစ်စေ, ဤဆောင်းပါးတွင်ခွဲခြမ်းစိတ်ဖြာခြင်းနှင့်ဖြေရှင်းနည်းများသည်ဤပြ problem နာကိုပိုမိုနားလည်သဘောပေါက်ရန်နှင့်ဖြေရှင်းနိုင်ရန်ကူညီနိုင်သည်ဟုကျွန်ုပ်မျှော်လင့်ပါသည်။