PHP application များတီထွင်သည့်အခါဒေတာဘေ့စ်ဆက်သွယ်မှုပျက်ကွက်မှုပြ problem နာမှာဘုံ debugging အခက်အခဲများအနက်မှတစ်ခုဖြစ်သည်။ developer များအနေဖြင့် MySQL database များနှင့်ချိတ်ဆက်ရန် MySQLI extension ကိုအသုံးပြုလေ့ရှိသည်။ MySQLI :: MySQLI_STMT :: MySQLI_STMT :: MySQLI_STMT :: IFIRE အမှား နှစ်ခုသည်အသုံးများသော user capture ယန္တရားများဖြစ်သည်။ ယနေ့ကျွန်ုပ်တို့သည် MySQLI_STMMT ကို အသုံးပြု. သိသာ ထင်ရှားသောအားသာချက်များကိုလေ့လာကြလိမ့်မည်။
ပထမ ဦး စွာ MySQLI :: MySQLI_STMT :: MySQLI_STMT :: MySQLI_STMT :: MySQLI_STMT ::
MySQLI :: $ အမှားသည် ဒေတာဘေ့စ်ဆက်သွယ်မှုအရာဝတ်ထု များအတွက်သင့်တော်သည်။ ၎င်းကိုချိတ်ဆက်နေစဉ်အမှားအယွင်းများကိုပြန်ပို့ရန်အသုံးပြုသည်။
MySQLI_STMM :: $ အမှား ပြင်ဆင်ထားသည့်ကြေညာချက်များအရာများအတွက် သင့်လျော်သည်။ Preprocessing ကြေညာချက်ကိုကွပ်မျက်သည့်အခါကြုံတွေ့ရသည့်အမှားမက်ဆေ့ခ်ျကိုပြန်ပို့သည်။
ဒေတာဘေ့စ်ဆက်သွယ်မှုပျက်ကွက်မှုတစ်ခုကြုံတွေ့ရသောအခါ MySQLI :: $ အမှားကို အဓိကအား ဖြင့် connection error message များရရှိရန်အဓိကအသုံးပြုသည်။ ထို့ကြောင့်ကျွန်ုပ်တို့သည် MySQLI_STMT :: $ အမှားကို အသုံးပြုသောအခါ MySQLI :: $ အမှားများ ထက်ပိုမိုတိကျသောသတင်းအချက်အလက်များကိုအထူးသဖြင့် SQL ထုတ်ပြန်ချက်များကိုအကောင်အထည်ဖော်သည့်အခါပြ problems နာများသို့ပြောင်းလဲသွားနိုင်သည်။
// အသုံးပြု mysqli::$error Capture ဆက်သွယ်မှုအမှားများ
$mysqli = new mysqli("localhost", "username", "password", "database");
if ($mysqli->connect_error) {
echo "ဆက်သွယ်မှုအမှား: " . $mysqli->connect_error;
}
// အသုံးပြု mysqli_stmt::$error ထုတ်ပြန်ကြေငြာချက်အမှား
$stmt = $mysqli->prepare("SELECT * FROM users WHERE id = ?");
$stmt->bind_param("i", $user_id);
if (!$stmt->execute()) {
echo "အမှားအမှား: " . $stmt->error;
}
အထက်ပါဥပမာတွင် ဒေါ်လာ MySQLI-> Connect_ERRORR သည် ဒေတာဘေ့စ ် ဆက်သွယ်မှုကိုမအောင်မြင်သောအမှားတစ်ခုပြန်ပို့သည်။
MySQLI_STMT :: $ အမှားသည် developer များပြ the နာများ၏ရင်းမြစ်၏အဓိကအကြောင်းရင်းကို MySQLI :: $ အမှား ထက်ပိုမိုသိရှိနိုင်ရန်ကူညီနိုင်သည်။ ဘာဖြစ်လို့လဲဆိုတော့ဒေတာဘေ့စ်ဆက်သွယ်မှုအမှားများသည်ပြင်ပ configuration သို့မဟုတ် network problems of Network ပြ problems နာများကြောင့်ဖြစ်ရခြင်းသည်များသောအားဖြင့် SQL syntax, parameter binding နှင့်အခြားပြ problems နာများနှင့်ဆက်စပ်သောကြောင့်ဖြစ်သည်။ MySQLI_STMT :: $ အမှားအယွင်းကို သုံးသောအခါ developer များပိုမိုမြန်ဆန်စွာဖြေရှင်းနိုင်ရန်ကူညီသည်။
// mysqli::$error နမူနာ
$mysqli = new mysqli("localhost", "username", "password", "nonexistent_database");
if ($mysqli->connect_error) {
echo "ဆက်သွယ်မှုအမှား: " . $mysqli->connect_error; // ဒေတာဘေ့စ်တွင်မတည်ရှိသောအမှားများ
}
// mysqli_stmt::$error နမူနာ
$stmt = $mysqli->prepare("SELECT * FROM users WHERE id = ?");
$id = "string_instead_of_int"; // အချက်အလက်များကိုရိုက်ပါ
$stmt->bind_param("i", $id);
if (!$stmt->execute()) {
echo "အမှားအမှား: " . $stmt->error; // Mismatch အမှားရိုက်ပါ
}
MySQLI_STMT :: $ အမှားသည် အမှားကိုင်တွယ်မှုကိုပိုမိုပစ်မှတ်ထားစေသည်။ SQL ထုတ်ပြန်ချက်များကိုအကောင်အထည်ဖော်သည့်အခါအမှားတစ်ခုဖြစ်ပါက developer သည်ဒေတာဘေ့စ်ဆက်သွယ်မှုပြတ်တောက်မှုတစ်ခုလုံးထက် execute မအောင်မြင်ပါ။ ဤတိကျသောအမှားကိုင်တွယ်မှုနည်းလမ်းသည်ကြီးမားသောစီမံကိန်းများအတွက်အထူးအရေးကြီးသည်။
ဆန့်ကျင်ဘက်အနေဖြင့် MySQLI :: $ အမှားသည် ဒေတာဘေ့စ်ဆက်သွယ်မှုအတွက်အမှားအယွင်းများကိုသာပေးလိမ့်မည်။ အကယ်. ၎င်းသည်ဒေတာဘေ့စ်ဆက်သွယ်မှုကိုယ်နှိုက်နှင့်ပြ a နာရှိသလားဆိုတာမရှင်းနိုင်ရင်တော့အမှားအယွင်းရဲ့သတ်သတ်မှတ်မှတ်အကြောင်းပြချက်ကိုမြန်မြန်ရှာဖို့ခက်ခဲလိမ့်မယ်။
// အမှားကိုင်တွယ်ပုံ၏ပြောင်းလွယ်ပြင်လွယ် - mysqli::$error
$mysqli = new mysqli("localhost", "username", "password", "database");
if ($mysqli->connect_error) {
die("ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $mysqli->connect_error); // 如果ဆက်သွယ်မှုမအောင်မြင်ပါ,တိုက်ရိုက်ကွပ်မျက်ခြင်းကိုရပ်တန့်
}
// အမှားကိုင်တွယ်ပုံ၏ပြောင်းလွယ်ပြင်လွယ် - mysqli_stmt::$error
$stmt = $mysqli->prepare("SELECT * FROM users WHERE id = ?");
$stmt->bind_param("i", $user_id);
if (!$stmt->execute()) {
echo "စုံစမ်းမှုကွပ်မျက်မှုမအောင်မြင်ပါ: " . $stmt->error; // စုံစမ်းမှုပျက်ကွက်လျှင်,အခြားစစ်ဆင်ရေးများသို့မဟုတ်သစ်ထုတ်လုပ်ခြင်းနှင့်အတူဆက်လက်
}
MySQLI_STMT :: $ အမှားအယွင်းများကို အသုံးပြုသောအခါ connection အမှားတစ်ခုကြောင့်ပရိုဂရမ်ကိုတိုက်ရိုက်ရပ်စဲခြင်းမပြုဘဲအသစ်ပြောင်းခြင်း,
MySQLI_STMT :: developer များက developer များက developer များသည်အသေးစိတ်အချက်အလက်များကိုပိုမိုအသေးစိတ်ရှာဖွေနိုင်ပြီး Database Interaction ကို debing လုပ်ရန်အလွန်အထောက်အကူပြုသည်။ အထူးသဖြင့်ရှုပ်ထွေးသော application များတွင် SQL Query မျိုးစုံပါ 0 င်ပတ်သက်လေ့ရှိသည်။ Developeries သည် Developer များက Developer Entools ၏ပြ problems နာများကိုတစ်ခုမှတစ်ခုချင်းစီ၏ပြ problems နာများကိုရှာဖွေရန်အထောက်အကူပြုနိုင်သည်။
ဥပမာအားဖြင့်, MySQLI_STMT :: Developments အတွက် or error ကို log file တစ်ခုသို့ 0 င်ရောက်ခြင်းသို့မဟုတ် developer များအတွက်အသိပေးချက်စနစ်သို့ 0 င်ရောက်နိုင်သည်။
// 将အမှားအမှား记录到日志文件
$stmt = $mysqli->prepare("SELECT * FROM users WHERE id = ?");
$stmt->bind_param("i", $user_id);
if (!$stmt->execute()) {
file_put_contents("error_log.txt", "စုံစမ်းမှုကွပ်မျက်မှုမအောင်မြင်ပါ: " . $stmt->error . "\n", FILE_APPEND);
}
ဒေတာဘေ့စ် connection ကို debing လုပ်သောအခါ MySQLI_STMT :: $ အမှားသည် MySQLI :: $ အမှား ထက်ပိုမိုတိကျသောအမှားအချက်အလက်များကိုပေးသည်။ ၎င်းသည် Developer များကိုပိုမိုရှင်းလင်းစွာနားလည်ရန်ကူညီနိုင်သည်။ မည်သည့် SQL ထုတ်ပြန်ကြေငြာချက်သည်ပြ problems နာများကိုအရေးယူရန်သို့မဟုတ်ဒေတာများကိုပိုမိုမြန်ဆန်စွာထားရှိရန်ပျက်ကွက်ခြင်းသို့မဟုတ်ပြ the နာကိုပိုမိုမြန်ဆန်စွာထားရှိရန်ပျက်ကွက်သည်။ MySQLI_STMT ၏အားသာချက်များ :: IFFRESS သည် SQL Query အမျိုးမျိုးကိုကွပ်မျက်ရန်လိုအပ်သည့်ရှုပ်ထွေးသော application များအပေါ်အထူးသဖြင့်အသေးစိတ်မှားယွင်းသောအမှားအယွင်းများပေးပြီး developer များကိုကိုင်တွယ်သောအမှားများကိုကိုင်တွယ်သည်။