MySQLI_ERROR () သည် developer များအတွက်လုပ်ဆောင်ချက်များကိုကိုင်တွယ်ဖြေရှင်းသည့်အကျွမ်းတဝင်အမှားအများဆုံးအမှားအယွင်းတစ်ခုဖြစ်သည်။ ၎င်း၏ function သည်ဒေတာဘေ့စ်စစ်ဆင်ရေးပျက်ကွက်သောအခါအမှားအယွင်းကိုဖော်ပြသည့် string ကိုပြန်ပို့ရန်ဖြစ်သည်။ ဥပမာအားဖြင့်, မမှန်ကန်ကြောင်း SQL ထုတ်ပြန်ကြေငြာချက်ကိုလုပ်ဆောင်သောအခါ -
$mysqli = new mysqli("localhost", "user", "password", "database");
$sql = "SELEC * FROM users"; // မစင်ကြယ်သောရေးသားထားသော SELECT
$result = $mysqli->query($sql);
if (!$result) {
echo "SQL Execution မအောင်မြင်ပါ: " . mysqli_error($mysqli);
}
output သည်ဤကဲ့သို့သောအမှားတစ်ခုဖြစ်လိမ့်မည်။
SQL Execution မအောင်မြင်ပါ: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELEC * FROM users' at line 1
ဒါက syntax အမှားအယွင်းများကိုနေရာချခြင်းအတွက်အထောက်အကူပြုသည်။
MySQLI_ERDRORRORRORRORRERE () , MySQLI :: SQL ကြေငြာချက်အောင်မြင်စွာကွပ်မျက်ခံရပြီးသည့်အခါအစီရင်ခံစာအချက်အလက်များသည် ကြေငြာချက်ရလဒ်များနှင့်ပတ်သက်သည့်အစီရင်ခံစာအချက်အလက်များနှင့်ဆက်စပ်မှုကိုပိုမိုဖော်ပြထားသည်။ အထူးသဖြင့် ထည့်သွင်းခြင်း , မွမ်းမံခြင်း , ဖျက်ခြင်း, ဖျက်ခြင်း စသည့်ထုတ်ပြန်ချက်များကိုအကောင်အထည်ဖော်သောအခါ,
ဥပမာအားဖြင့်:
$mysqli = new mysqli("localhost", "user", "password", "database");
$sql = "UPDATE users SET status='active' WHERE last_login < '2024-01-01'";
$mysqli->query($sql);
echo "သက်ဆိုင်ရာအသေးစိတ်အချက်အလက်များ: " . $mysqli->info;
ဖြစ်နိုင်ချေရှိသောရလဒ်များမှာဆင်တူသည်။
သက်ဆိုင်ရာအသေးစိတ်အချက်အလက်များ: Rows matched: 3 Changed: 2 Warnings: 0
ဆိုလိုသည်မှာစုစုပေါင်းအတန်း 3 တန်းနှင့်ကိုက်ညီသော်လည်း 2 တန်းသာသာပြုပြင်ခဲ့သည်။
SQL ထုတ်ပြန်ချက်များ ကို အကောင်အထည်ဖော်သည့်အခါဤလုပ်ဆောင်ချက်နှစ်ခုကိုအတူတကွသုံးနိုင်သည်။ အကယ်. ကွပ်မျက်အောင်မြင်မှုအောင်မြင်ပါက Execution အသေးစိတ်ကိုရရှိရန် MySQLI :: $ အချက်အလက်ကို သုံးပါ။ ဤနည်းလမ်းသည်နောက်ခံစီမံခန့်ခွဲမှုဘောင်ကွက်တွင်ပိတ်ဆို့ခြင်း,
ပုံမှန် encapsulation function ကိုအောက်ပါအတိုင်းဖြစ်သည် -
function executeQuery($mysqli, $sql) {
if ($mysqli->query($sql) === TRUE) {
return [
'success' => true,
'info' => $mysqli->info
];
} else {
return [
'success' => false,
'error' => mysqli_error($mysqli)
];
}
}
ခေါ်ဆိုမှုဥပမာ -
$response = executeQuery($mysqli, "UPDATE users SET status='inactive' WHERE id IN (1,2,3)");
if ($response['success']) {
echo "အောင်မြင်စွာအသစ်ပြောင်းခြင်း,အသေးစိတ်အချက်အလက်များသည်အောက်ပါအတိုင်းဖြစ်သည်:" . $response['info'];
} else {
echo "အသစ်ပြောင်းခြင်းမအောင်မြင်ပါ,အမှားသတင်းစကား:" . $response['error'];
}
output ကို (အောင်မြင်မှုအပေါ်):
အောင်မြင်စွာအသစ်ပြောင်းခြင်း,အသေးစိတ်အချက်အလက်များသည်အောက်ပါအတိုင်းဖြစ်သည်:Rows matched: 3 Changed: 3 Warnings: 0
output ကို (ပျက်ကွက်အပေါ်):
အသစ်ပြောင်းခြင်းမအောင်မြင်ပါ,အမှားသတင်းစကား:Unknown column 'statuz' in 'field list'
ဒေတာရွှေ့ပြောင်းခြင်းနှင့်ထပ်တူပြုခြင်းလုပ်ငန်းများ <br> <br> အချက်အလက်အမြောက်အများကိုရေးသည့်အခါဒေတာများကိုအသစ်ပြောင်းခြင်းသို့မဟုတ်ကျော်သွားခြင်းရှိမရှိသိခြင်းသည်အလုပ်သည်အောင်မြင်မှုရှိ,
Backstage Log System <br> အုပ်ချုပ်ရေးမှူးများအနေဖြင့်စစ်ဆင်ရေးတစ်ခုအောင်မြင်ရန်သို့မဟုတ်ပျက်ကွက်ခြင်းရှိမရှိကိုသိရန်လိုအပ်သော်လည်း၎င်းကိုအကျိုးသက်ရောက်သောမှတ်တမ်းများကိုနားလည်ရန်လည်းလိုအပ်သည်။
အလိုအလျောက်စမ်းသပ်ခြင်း <br> အချို့သောအတန်းများသည်အကျိုးသက်ရောက်မည်ဟုမျှော်လင့်ရသည်ဆိုပါကဤလုပ်ဆောင်ချက်နှစ်ခုကိုပေါင်းစပ်ခြင်းအားဖြင့် SQL ထုတ်ပြန်ချက်များမှန်ကန်မှုကိုအတည်ပြုနိုင်သည်။