PHP ဖွံ့ဖြိုးတိုးတက်မှုတွင်အထူးသဖြင့်တစ်ပြိုင်နက်တည်းတစ်ပြိုင်နက်တည်းပတ် 0 န်းကျင်တွင်တည်တံ့ခိုင်မြဲသောအခြေအနေများတွင်တည်ငြိမ်အေးချမ်းရေးနှင့်စွမ်းဆောင်ရည်သည်အထူးအရေးကြီးသည်။ MySQLI :: Get_warenings function သည် MySQLI extension မှပေးသော database သတိပေးအချက်အလက်များကိုရရှိရန် MySQLI extension မှပေးသောနည်းလမ်းဖြစ်သည်။ သို့သော်မြင့်မားသောတစ်ပြိုင်နက်တည်းဖြစ်ရပ်များတွင်မဆင်ခြင်နိုင်သောအသုံးမပြုခြင်းသည်စွမ်းဆောင်ရည်မြှင့်တင်မှုများသို့မဟုတ်ဒေတာရှေ့နောက်ညီညွတ်မှုပြ problems နာများကိုဖြစ်ပေါ်စေနိုင်သည်။ ဤဆောင်းပါးသည် MySQLI :: Get_warenings ကို မည်သို့အသုံးပြုရမည်ကိုလေ့လာလိမ့်မည်။
MySQLI :: Get_warenings ကို နောက်ဆုံးကွပ်မျက်ခံရသော SQL ထုတ်ပြန်ကြေငြာချက်အရထုတ်လုပ်သောသတိပေးအချက်အလက်များရရှိရန်အသုံးပြုသည်။ ၎င်းသည်ဤ သတိပေးချက်များ ကိုဖြတ်သန်းနိုင်ပြီးဒေတာချို့ယွင်းခြင်း,
နမူနာကုဒ်:
$mysqli = new mysqli("gitbox.net", "user", "password", "database");
$mysqli->query("INSERT INTO users(name) VALUES('a very long name exceeding field length')");
$warning = $mysqli->get_warnings();
if ($warning) {
do {
printf("Warning: %s\n", $warning->message);
} while ($warning = $warning->next());
}
အပိုဆောင်းအရင်းအမြစ်သုံးစွဲမှု <br> Get_warenings () ကို ခေါ်ဆိုခြင်း () သည်ကြိုတင်ပြင်ဆင်မှုများအတွင်းအပိုဆောင်းကြိမ်နှုန်းခေါ်ဆိုမှုများအတွင်းပိုမိုများပြားလာမည့်သတိပေးအချက်အလက်များကိုရယူရန်အတွက်ဒေတာဘေ့စ်နှင့်ဆက်သွယ်မှုလိုအပ်သည်။
ပြ problems နာများကိုပိတ်ဆို့ခြင်း ဘက်စုံသို့မဟုတ် Multi-process ကိုတစ်ပြိုင်နက်တည်းကွပ်မျက်ခြင်းကိုမှန်ကန်စွာစီမံခြင်းမပြုပါကဒေတာဘေ့စ်ဆက်သွယ်မှုကိုမှန်ကန်စွာမနိုင်ပါကဤနည်းလမ်းကိုခေါ်ဆိုခြင်းက connection ပိတ်ဆို့ခြင်းသည် connection ပိတ်ဆို့ခြင်းဖြစ်နိုင်သည်။
သတိပေးသတင်းအချက်အလက်သည်အချိန်မီသို့မဟုတ်ရှုံးနိမ့်ခြင်းမရှိပါ သတိပေးချက်သည်နောက်ဆုံးမေးမြန်းမှုအတွက်ဖြစ်သည်။ အကယ်. code logic ရှုပ်ထွေးနေပါက၎င်းသည် Get_warenings Point-Time Error သို့ခေါ်ဆိုမှုကိုဖြစ်ပေါ်စေပါကမှန်ကန်သောသတိပေးသတင်းအချက်အလက်ကိုရယူနိုင်မည်မဟုတ်ပါ။
တစ်ပြိုင်နက်တည်းတစ်ပြိုင်နက်တည်းအခြေအနေများတွင်မကြာခဏတီထွင်မှုနှင့်ဆက်သွယ်မှုကိုဖျက်ဆီးခြင်းကိုရှောင်ရှားရန်ဆက်သွယ်မှုရေကူးကန်သို့မဟုတ်မြဲမြဲချိတ်ဆက်မှုကိုအသုံးပြုရန်အကြံပြုသည်။ ဆက်သွယ်မှုတစ်ခုချင်းစီကိုသတိပေးခြင်းသည်ဆက်သွယ်မှုရှုပ်ထွေးမှုများကိုရှောင်ရှားရန်သက်ဆိုင်ရာ SQL စစ်ဆင်ရေးများအတွက်သာဖြစ်ကြောင်းသေချာပါစေ။
SQL ကြေငြာချက်တစ်ခုစီပြီးနောက် Get_warenings () () ကို မခေါ်ပါနှင့်,
// Debug Mode တွင်သာခေါ်ခဲ့သည်
if ($debugMode) {
$warnings = $mysqli->get_warnings();
if ($warnings) {
do {
error_log("SQL Warning: " . $warnings->message);
} while ($warnings = $warnings->next());
}
}
အကယ်. သင်သတိပေးချက်များကိုမကြာခဏရယူရန်လိုအပ်ပါကသင်သည် asynchronous log စုဆောင်းမှုကိုစဉ်းစားနိုင်သည်,
သတိပေးချက်များကိုလျှော့ချရန်အခြေခံနည်းလမ်းမှာဒေတာကိုဖြတ်တောက်မှုကြောင့်သတိပေးချက်များကိုရှောင်ရှားရန် SQL ထုတ်ပြန်ချက်များနှင့်ဇယားဖွဲ့စည်းပုံကိုပိုမိုကောင်းမွန်စေရန်ဖြစ်သည်။ SQL_MODE ကဲ့သို့သောဒေတာဘေ့စ်ဆာဗာ configuration parameters များကိုကျိုးကြောင်းဆီလျော်သောညှိနှိုင်းမှုသည်အသုံးမ 0 င်သောသတိပေးချက်များကိုလျှော့ချနိုင်သည်။
$mysqli = new mysqli("gitbox.net", "user", "password", "database");
function safeQuery(mysqli $db, string $sql, bool $logWarnings = false) {
if (!$db->query($sql)) {
throw new Exception("Query failed: " . $db->error);
}
if ($logWarnings) {
$warnings = $db->get_warnings();
if ($warnings) {
do {
error_log("[Warning] " . $warnings->message);
} while ($warnings = $warnings->next());
}
}
}
try {
// debugging စဉ်အတွင်းသာသတိပေးမှတ်တမ်းကိုဖွင့်ပါ
safeQuery($mysqli, "UPDATE users SET age = 25 WHERE id = 1", true);
} catch (Exception $e) {
error_log($e->getMessage());
}
MySQLI :: Get_warenings သည် SQL Execution ပြ problems နာများကိုဖြေရှင်းရန်အစွမ်းထက်သောကိရိယာတစ်ခုဖြစ်သည်, သို့သော်၎င်းကိုအကာအကွယ်ပေးသည့်ပတ်ဝန်းကျင်တွင်သတိထားသင့်သည်။ ဒေတာဘေ့စ်ဆက်သွယ်မှုများကိုဆင်ခြင်တုံတရားချိတ်ဆက်မှုများကိုဆင်ခြင်တုံတရားစီမံခန့်ခွဲမှု, စီးပွားရေးလိုအပ်ချက်များနှင့်ပေါင်းစပ်ခြင်းဖြင့်သတိပေးသတင်းအချက်အလက်များကိုသင့်လျော်စွာပြတ်တောင်းပြတ်တောင်းပြုပြင်ခြင်းသို့မဟုတ်သစ်ထုတ်လုပ်ခြင်းသည်စနစ်၏တည်ငြိမ်အေးချမ်းရေးနှင့်စွမ်းဆောင်ရည်ကိုများစွာတိုးတက်စေနိုင်သည်။