PHP တွင် MySQLI သည် MySQL database နှင့်အပြန်အလှန်ဆက်သွယ်ရန်နည်းလမ်းများစွာဖြင့် developer များကိုထောက်ပံ့ပေးသော MySQLI သည်အလွန်လူကြိုက်များသော database extension ဖြစ်သည်။ နှင့် MySQLI_STMM :: $ အမှား သည်အလွန်အသုံးဝင်သောပစ္စည်းတစ်ခုဖြစ်သည်။ MySQLI_STMTT :: i. $ အမှား (I.E. ဆက်သွယ်မှုသည်ပုံမှန်ဖြစ်လျှင်ဖြစ်နိုင်ချေရှိသောပြ problems နာအချို့ရှိနိုင်သည်။ ဤဆောင်းပါးသည်ဤပြ issues နာများကိုလေ့လာပြီး၎င်းတို့ကိုမည်သို့ရှောင်ရှားနိုင်မည်နည်း။
MySQLI_STMT :: $ အမှား သည် MySQLI_STMT အတန်းထဲတွင်ဘုံပိုင်ဆိုင်မှုဖြစ်သည်။ ၎င်းသည်လက်ရှိကြိုတင်မရရှိခဲ့သောကြေညာချက်တွင်ပြုလုပ်နိုင်သည့်အမှားများကိုရရှိနိုင်ပါသည်။ ၎င်းသည်အမှားအယွင်းအချက်အလက်များပါ 0 င်သည့် string တစ်ခုသို့မဟုတ်အမှားမရှိပါကအချည်းနှီးသော string ကိုပါ 0 င်သည်။
$stmt = $mysqli->prepare("SELECT * FROM users WHERE id = ?");
$stmt->bind_param("i", $id);
$stmt->execute();
if ($stmt->error) {
echo "Error: " . $stmt->error;
}
အထက်ပါကုဒ်သည် $ stmt-> အမှား မှတဆင့်ကြိုတင်သတ်မှတ်ထားသည့်ထုတ်ပြန်ချက်များကိုအကောင်အထည်ဖော်သောအခါအမှားသတင်းအချက်အလက်များကိုမည်သို့ရယူရမည်ကိုပြသသည်။
MySQLI_STMT :: $ အမှားသည် အမှားအယွင်းများကိုထောက်ပံ့ပေးသော်လည်းဆက်သွယ်မှုအခြေအနေကိုလျစ်လျူရှုပါကအောက်ပါပြ problems နာများကိုကျွန်ုပ်တို့ရင်ဆိုင်ရနိုင်သည်။
အကယ်. ဒေတာဘေ့စ်ဆက်သွယ်မှုသည် (ကွန်ရက်ပြ problems နာများကြောင့်ဒေတာ ဘေ့စ် 0 န်ဆောင်မှုကိုပြန်လည်စတင်ခြင်းရှိမရှိ, ဆက်သွယ်မှုသက်တမ်းကုန်သွားသောအခါ MySQLI_STMMT မှမှားယွင်းသောအမှားသတင်းစကား :: $ အမှားသည် ဒေတာဘေ့စ်၏အခြေအနေကိုရောင်ပြန်ဟပ်ခြင်းမပြုနိုင်ပါ။
ဥပမာအားဖြင့်:
// ဆက်သွယ်မှုသည်ဤမတိုင်မီအဆက်ပြတ်နေသည်ဟုယူဆပါ
$stmt = $mysqli->prepare("SELECT * FROM users WHERE id = ?");
$stmt->bind_param("i", $id);
$stmt->execute();
if ($stmt->error) {
// ဤအချိန်တွင်အမှားသည်ဆက်သွယ်မှုပြ problem နာနှင့်ဘာမှမဆိုင်ပါဘူး,မရရှိနိုင်သည့်ပြ the နာကိုဖြစ်ပေါ်စေသည်
echo "Error: " . $stmt->error;
}
ဤကိစ္စတွင် MySQLI_STMT ဟုခေါ်ဆိုသော်လည်းဒေါ်လာအမှားတစ်ခုသည် အမှားအယွင်းတစ်ခုသို့ပြန်ပို့နိုင်သော်လည်းဒေတာဘေ့စ်၏ဆက်သွယ်မှုပြ problem နာကိုတိုက်ရိုက်မဖော်ပြနိုင်ပါ။
အကယ်. ဒေတာဘေ့စ်ဆက်သွယ်မှုပြတ်တောက်သွားပါကသင်ဆက်သွယ်မှုအခြေအနေကိုမစစ်ဆေးပါကနောက်ဆက်တွဲဒေတာလုပ်ငန်းများကိုမှန်ကန်စွာလုပ်ဆောင်ခြင်းမပြုနိုင်ပါ။ ၎င်းသည်ဒေတာထည့်သွင်းခြင်း, မွမ်းမံခြင်းသို့မဟုတ်ဖျက်ခြင်းကဲ့သို့သောအချက်အလက်များ၏သမာဓိကိုထိခိုက်နိုင်သည်။ အကယ်. MySQLI_STMT :: $ အမှားက ဆက်သွယ်မှုပြ problems နာများကိုချက်ချင်းရောင်ပြန်ဟပ်ခြင်းမရှိပါကသင်သည်အရေးကြီးသောအမှားအယွင်းများကိုလွဲချော်စေပြီးအချက်အလက်ဆုံးရှုံးမှုကိုရရှိခြင်း။
ထုတ်လုပ်မှုပတ် 0 န်းကျင်တွင်ဒေတာဘေ့စ်ဆက်သွယ်မှုပြ problems နာများတွင်အချိန်မရွေးဖြစ်ပေါ်နိုင်သည်။ သင် connection status ကိုမစစ်ဆေးပါကအချိန်တိုအတွင်းပြတ်တောက်မှုများကိုသင်ဖမ်းနိုင်မည်မဟုတ်ပါ။ ၎င်းသည်လျှောက်လွှာကိုမတည်ငြိမ်သောသို့မဟုတ်ကြိုတင်ခန့်မှန်းရခက်သည့်အပြုအမူများကိုပြသနိုင်ပြီးစနစ်ပျက်သွားခြင်းသို့မဟုတ်နှေးကွေးစွာတုန့်ပြန်မှုဖြစ်စေနိုင်သည်။
ဤအရာကိုရှောင်ရှားရန်ဒေတာဘေ့စ်လုပ်ငန်းများမလုပ်ဆောင်မီဆက်သွယ်မှုသည်မည်သည့်နေရာတွင်မဆိုဆက်သွယ်မှုရှိ,
if ($mysqli->ping()) {
// ဒေတာဘေ့စစစ်ဆင်ရေးလုပ်ဆောင်ပါ
$stmt = $mysqli->prepare("SELECT * FROM users WHERE id = ?");
$stmt->bind_param("i", $id);
$stmt->execute();
if ($stmt->error) {
echo "Error: " . $stmt->error;
}
} else {
echo "Database connection lost!";
}
အထက်ပါကုဒ်တွင် MySQLI-> Ping () ping () method ကို အသုံးပြု. ဆက်သွယ်မှုသည်ပုံမှန်အားဖြင့်ဆက်သွယ်မှုပုံမှန်ဖြစ်သည့်အတွက် SQL Queries များကိုသာလုပ်ဆောင်ရန်သေချာစေရန်ဆက်သွယ်မှုအခြေအနေကိုစစ်ဆေးရန်။
ဆက်သွယ်မှုအခြေအနေကိုလျစ်လျူရှုခြင်းကြောင့်ဖြစ်ပေါ်လာသောအလားအလာရှိသောပြ problems နာများကိုရှောင်ရှားရန်,
ဒေတာဘေ့စ် connection status ကိုစစ်ဆေးပါ ။ ဒေတာဘေ့စ်လည်ပတ်မှုတစ်ခုချင်းစီမတိုင်မီ MySQLI-> ping () ping ကို သုံးပါ။ ဆက်သွယ်မှုသည်မမှန်ကန်ပါကသင့်လျော်သောအမှားအယွင်းများကိုပြန်လည်ချိတ်ဆက်နိုင်သည်သို့မဟုတ်ပေးနိုင်သည်။
အမှားမက်ဆေ့ခ်ျများတိကျမှန်ကန်မှုကိုသေချာစေရန် - MySQLI_STMT :: $ အမှားကို ခေါ်သည့်အခါ Database connection သည် connection ပြ problem နာမဟုတ်ဘဲအမှန်တကယ်မေးမြန်းခြင်းအမှားကိုထင်ဟပ်စေရန်အတွက်အချက်အလက်များသည်မှန်ကန်ကြောင်းကို ဦး စွာအတည်ပြုပါ။
PHP တွင် ချွင်းချက်ကိုင်တွယ်သည့်ယန္တရားကိုအသုံးပြုခြင်း - PHP တွင်ဒေတာဘေ့စ်ဆက်သွယ်မှုများနှင့်မေးမြန်းချက်များတွင်ဖြစ်နိုင်ချေရှိသောအမှားများကိုဖမ်းယူရန်ခြွင်းချက်ကိုင်တွယ်ရန်အသုံးပြုနိုင်သည်။ MySQLI_REPORE (MySQLI_REPORE_ERRORT) အမှားများကိုဖွင့်ခြင်းအားဖြင့် MySQLI_REPORT_STECT) MySQLI_REPORT_STECT) MYSQLI_REPORT_STECT)
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
try {
$stmt = $mysqli->prepare("SELECT * FROM users WHERE id = ?");
$stmt->bind_param("i", $id);
$stmt->execute();
} catch (mysqli_sql_exception $e) {
echo "Database error: " . $e->getMessage();
}
ဤနည်းအားဖြင့်သင်သည်ဒေတာဘေ့စ်အမှားအယွင်းများအားလုံးကိုဖမ်းရန်နှင့်ကိုင်တွယ်ရာတွင်ပိုမိုပြောင်းလွယ်ပြင်လွယ်ရှိနိုင်သည်။
MySQLI_STMT ကိုအသုံးပြုသည့်အခါဒေတာဘေ့စ် connection status ကိုလျစ်လျူရှုခြင်း :: $ အမှားသည် အထူးသဖြင့်ဆက်သွယ်မှုပျောက်ဆုံးခြင်း (သို့) ခြွင်းချက်များဖြစ်ပေါ်လျှင်ပြ problems နာအမျိုးမျိုးကိုဖြစ်ပေါ်စေနိုင်သည်။ အမှားမက်ဆေ့ခ်ျများနှင့်စနစ်၏တည်ငြိမ်မှုကိုသေချာစေရန် developer များသည်စုံစမ်းမှုမပြုလုပ်မီ connection status ကိုအမြဲစစ်ဆေးသင့်ပြီးသင့်လျော်သောခြွင်းချက်ကိုင်တွယ်သည့်အတိုင်းအတာများကိုပြုလုပ်သင့်သည်။ ဤအစီအမံများမှတဆင့်အလားအလာရှိသောအမှားများနှင့်အချက်အလက်ဆုံးရှုံးမှုပြ problems နာများကိုထိရောက်စွာရှောင်ရှားနိုင်ပြီးလျှောက်လွှာ၏ယုံကြည်စိတ်ချရမှုကိုသေချာစေနိုင်သည်။