PHP တွင် MySQLI_STMT :: $ အမှား သည် developer များကို MySQL ထုတ်ပြန်ချက်များနှင့်ဆက်စပ်သောအမှားအချက်အလက်များကိုရရှိရန်ခွင့်ပြုသည့်အလွန်အသုံးဝင်သောလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ MySQLI_STMT :: $ အမှားအယွင်းများသည် ဖွံ့ဖြိုးရေးလုပ်ငန်းစဉ်အတွင်း SQL Execution အမှားများကိုလျင်မြန်စွာရှာဖွေရန်နှင့် debugging ထိရောက်မှုကိုတိုးတက်စေရန်အတွက်အမှားအယွင်းများကိုလျင်မြန်စွာရှာဖွေရန်ကူညီနိုင်သည်။
ဤဆောင်းပါးတွင် MySQLI_STMT :: IFFIRE သည် Developer များ Debugging Phase တွင်အမှားအယွင်းများ၏အရင်းအမြစ်ကိုပိုမိုရှင်းလင်းစွာနားလည်နိုင်သည်။
MySQLI extension ကိုအသုံးပြုသောအခါ MySQLI_STMT :: $ အမှားသည် အင်္ဂါရပ်၏အမှားအယွင်းများကိုပြန်လည်ထုတ်လွှင့်သည့်အသင်း 0 င် variable တစ်ခုဖြစ်သည်။ အကယ်. SQL ကြေငြာချက်ကိုအောင်မြင်စွာကွပ်မျက်ခံရလျှင်ဤပစ္စည်းဥစ်စာပိုင်ဆိုင်မှုသည်အချည်းနှီးသောကြိုးကိုပြန်ပေးလိမ့်မည်။ အမှားတစ်ခုရှိပါက၎င်းသည်အမှားအယွင်းတစ်ခုအသေးစိတ်ဖော်ပြချက်ပါလိမ့်မည်။
$stmt = $mysqli->prepare("SELECT * FROM users WHERE id = ?");
$stmt->bind_param("i", $id);
$stmt->execute();
if ($stmt->errno) {
echo "Error: " . $stmt->error; // အမှားမက်ဆေ့ခ်ျကိုပြသပါ
}
အထက်ပါကုဒ်တွင် ဒေါ်လာ stmt-> အမှားသည် SQL Execution တွင်ကြုံတွေ့ရစဉ်ကြုံတွေ့ရသောပြ problems နာများအကြောင်းအသေးစိတ်အချက်အလက်များကိုပြန်လည်ပေးပို့ခဲ့သည်။
ဖွံ့ဖြိုးရေးပတ် 0 န်းကျင်တွင်အမှားအယွင်းများကိုအချိန်မီ 0 င်ရောက်နိုင်သည်။ MySQLI_STMT ကိုပိုမိုကောင်းမွန်စွာပေါင်းစပ်နိုင်ရန်အတွက်အမှားအယွင်းများသို့ရောက်ရန် $ အမှားများကို ကျွန်ုပ်တို့အားအောက်ပါနည်းလမ်းများဖြင့်တိုးတက်စေနိုင်သည်။
PHP သည်အလွန်အစွမ်းထက်သောအင်္ဂါရပ်ကိုထောက်ပံ့ပေးသည်။ ဖွံ့ဖြိုးရေးပတ် 0 န်းကျင်ကို အခြေခံ. SQL အမှားများနှင့် output အသေးစိတ်အချက်အလက်များအားလုံးကိုဖမ်းယူရန်၎င်းကိုကျွန်ုပ်တို့အသုံးပြုနိုင်သည်။
// အမှားကိုင်တွယ်ဖြေရှင်းအမှား
function custom_error_handler($errno, $errstr, $errfile, $errline) {
if (defined('DEBUG') && DEBUG) {
// ဖွံ့ဖြိုးရေးပတ် 0 န်းကျင်တွင်အသေးစိတ်အချက်အလက်များ output ကို output
echo "Error [$errno]: $errstr in $errfile on line $errline\n";
} else {
// ထုတ်လုပ်မှုပတ်ဝန်းကျင်တွင်အမှားအယွင်းများကိုသစ်ထုတ်လုပ်ခြင်း,မပြဘူး
error_log("Error [$errno]: $errstr in $errfile on line $errline");
}
}
// တစ် ဦး စိတ်ကြိုက်အမှားကိုင်တွယ်erlerကိုတည်ဆောက်ခြင်း
set_error_handler("custom_error_handler");
// နမူနာဒေတာဘေ့စ်ဆက်သွယ်မှုနှင့်မေးမြန်းချက်များ
$mysqli = new mysqli("localhost", "user", "password", "test_db");
if ($mysqli->connect_error) {
trigger_error("Connection failed: " . $mysqli->connect_error, E_USER_ERROR);
}
// နမူနာ SQL ကရိယာတန်းဆာ
$stmt = $mysqli->prepare("SELECT * FROM users WHERE id = ?");
$stmt->bind_param("i", $id);
$stmt->execute();
if ($stmt->errno) {
trigger_error("SQL Error: " . $stmt->error, E_USER_ERROR);
}
ဤဥပမာတွင်ကျွန်ုပ်တို့သည်အမှားရလဒ်ကို set_error_handler function မှတစ်ဆင့်ဖွံ့ဖြိုးရေးပတ်ဝန်းကျင်သို့ပေါင်းစပ်ထားသည်။ ဖွံ့ဖြိုးတိုးတက်မှုဆိုင်ရာပတ် 0 န်းကျင်တွင် developer များပြ problems နာများကိုလျင်မြန်စွာဖော်ထုတ်ရန်အထောက်အကူပြုရန်အတွက်အမှားအယွင်းများကိုအသေးစိတ်ဖော်ပြလိမ့်မည်။ ထုတ်လုပ်မှုပတ်ဝန်းကျင်တွင်အမှားအယွင်းများကိုမှတ်တမ်းတွင်မှတ်တမ်းတင်ထားပြီးအဆုံးအသုံးပြုသူနှင့်ထိတွေ့ခြင်းမပြုရ။
ပိုမိုအဆင်ပြေစွာ Debug MySQL Query အမှားများကိုကျွန်ုပ်တို့ယေဘူယျ debugging function ကိုဖန်တီးနိုင်သည်။ ဤလုပ်ဆောင်ချက်သည် SQL ကြေငြာချက်နှင့် output အသေးစိတ်အမှားအချက်အလက်များ၏ကွပ်မျက်ရလဒ်များကိုစစ်ဆေးလိမ့်မည်။
function debug_sql_error($stmt) {
if ($stmt->errno) {
echo "SQL Error: " . $stmt->error . "\n";
echo "Query: " . $stmt->query . "\n";
}
}
// နမူနာ使用
$stmt = $mysqli->prepare("SELECT * FROM users WHERE id = ?");
$stmt->bind_param("i", $id);
$stmt->execute();
debug_sql_error($stmt);
ဤနည်းလမ်းမှတစ်ဆင့် SQL query တစ်ခုစီသည်လုပ်ဆောင်ပြီးနောက်အမှားအယွင်းများရှိမရှိစစ်ဆေးရန် Debug_sql_Error ကို ကျွန်ုပ်တို့ခေါ်ဆိုနိုင်သည်။ ၎င်းသည် MySQLI_STMT :: အမှားအယွင်းများအတွက်အမှားအချက်အလက်များကိုကျွန်ုပ်တို့အားခွင့်ပြုရန်သာမကဒေါ်လာအမှားအယွင်းများ ကိုကြည့်ပါ။
ထုတ်လုပ်မှုပတ် 0 န်းကျင်တွင်အသုံးပြုသူအားအမှားအချက်အလက်များကိုတိုက်ရိုက်ထုတ်ယူခြင်းသည်မသင့်လျော်ပါ။ ထို့ကြောင့်ကျွန်ုပ်တို့သည်အမှားအချက်အလက်များကို log file ထဲသို့ဝင်ရောက်နိုင်သည်။ PHP သည် MySQL အမှားများကိုဖိုင်များ (သို့) အခြားသစ်ထုတ်လုပ်ရေးစနစ်များသို့ 0 င်ရန်ကျွန်ုပ်တို့အသုံးပြုနိုင်သည်။
function log_sql_error($stmt) {
if ($stmt->errno) {
$error_message = "SQL Error: " . $stmt->error . "\n";
$error_message .= "Query: " . $stmt->query . "\n";
error_log($error_message, 3, '/path/to/error.log');
}
}
// နမူနာ使用
$stmt = $mysqli->prepare("SELECT * FROM users WHERE id = ?");
$stmt->bind_param("i", $id);
$stmt->execute();
log_sql_error($stmt);
ဤကုဒ်သည် SQL Error Message ကိုသတ်မှတ်ထားသော log form သို့ log လုပ်လိမ့်မည်။
ဖွံ့ဖြိုးရေးအကျိုးသက်ရောက်မှုကိုပိုမိုတိုးတက်စေရန်အတွက် develie များကို Debug သို့လွယ်ကူချောမွေ့စေရန်ရှေ့တန်းမှအချက်အလက်များကိုရှေ့တန်းသို့တိုက်ရိုက်ပေးပို့နိုင်သည်။ အမှားသတင်းအချက်အလက်များကို Ajax တောင်းဆိုမှုသို့မဟုတ်အခြားယန္တရားများမှတစ်ဆင့် client သို့ဖောက်သည်ထံသို့ပြန်ပို့နိုင်သည်။
// နမူနာ:သွား AJAX အမှားမက်ဆေ့ခ်ျကိုပြန်လာပါ
if ($stmt->errno) {
echo json_encode(['error' => $stmt->error, 'query' => $stmt->query]);
}
ရှေ့ဆုံးအဆုံးတွင်သင်သည်ဤအမှားအယွင်းများကိုကိုင်တွယ်ရန် JavaScript ကို သုံး. လိုအပ်ပါကစာမျက်နှာပေါ်တွင်အသေးစိတ်အမှားသတိပေးချက်များကိုပြသနိုင်သည်။
MySQLI_STMT :: $ အမှားအမှားများ အတွက်အမှားများအတွက်အမှားများအတွက် developer များဖွံ့ဖြိုးရေးပတ် 0 န်းကျင်ရှိပြ issues နာများကိုပိုမိုလျင်မြန်စွာရှာဖွေတွေ့ရှိနိုင်သည်။ Custom error error handlers များ, debug functions များ, log systems နှင့်ရှေ့ဆုံးပေါင်းစည်းမှုမှတစ်ဆင့်ကျွန်ုပ်တို့သည်ဖွံ့ဖြိုးရေးပတ် 0 န်းကျင်ရှိ MySQL အမှားများကိုထိရောက်စွာခြေရာခံနိုင်ပြီးနောက်ဆုံးတွင်ဖွံ့ဖြိုးတိုးတက်မှုလုပ်ငန်းစဉ်ကိုမြှင့်တင်ပေးသည်။
ထုတ်လုပ်မှုပတ် 0 န်းကျင်များတွင်ကျွန်ုပ်တို့သည်အထိခိုက်မခံသောအချက်အလက်များကိုအဆုံးသတ်ရန်အထိခိုက်မခံသောသတင်းအချက်အလက်များကိုယိုစိမ့်မှုမှရှောင်ရှားရန်အမှားအချက်အလက်များကိုကိုင်တွယ်ရန်သတိထားသင့်ပြီးအမှားအယွင်းများကိုပုံမှန်အားဖြင့်မှတ်တမ်းစနစ်ဖြင့်မှတ်တမ်းတင်ထားသည်။