လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> MySQLI_STMT :: $ အမှားနှင့်အလိုအလျောက်အမှားအယွင်းသစ်စနစ်ကိုမည်သို့တည်ဆောက်ရမည်နည်း

MySQLI_STMT :: $ အမှားနှင့်အလိုအလျောက်အမှားအယွင်းသစ်စနစ်ကိုမည်သို့တည်ဆောက်ရမည်နည်း

gitbox 2025-05-19

0 က်ဘ်အပလီကေးရှင်းများဖွင့်လှစ်သည့်အခါ, ဒေတာဘေ့စ်လုပ်ငန်းများကိုကိုင်တွယ်သောအခါဒေတာဘေ့စ်လုပ်ငန်းများကိုကိုင်တွယ်ရာတွင်အမှားအယွင်းများသည်အထူးသဖြင့်ကြီးမားသောစီမံကိန်းများတွင်အမှားရှာဖွေခြင်းနှင့်ဆုံးဖြတ်ချက်သည်စနစ်တည်ငြိမ်မှုနှင့်အသုံးပြုသူတို့ကိုများစွာတိုးတက်စေနိုင်သည်။ PHP တွင် MySQLI extension သည် MySQLI_STMT :: အမှားအယွင်းများနှင့်မှတ်တမ်းမှတ်ရာများနှင့်မှတ်တမ်းမှတ်ရာမှတ်တမ်းများကိုအလွယ်တကူဖမ်းနိုင်သည်။

ဤဆောင်းပါးသည် MySQLI_STMT :: $ အမှား function ကိုမည်သို့အသုံးပြုရမည်ကိုမိတ်ဆက်ပေးမည်။ ဤနည်းလမ်းအားဖြင့်အမှားတစ်ခုဖြစ်သည့်အခါစနစ်သည်လျင်မြန်စွာတုန့်ပြန်ရန်နှင့်နောက်ဆက်တွဲပြ troubl နာဖြေရှင်းမှုနှင့်ပြုပြင်ခြင်းများကိုလွယ်ကူချောမွေ့စေနိုင်သည်။

1 ။ MySQLI_STMT :: $ အမှား function ကိုနားလည်ပါ

MySQLI_STMT :: $ အမှား သည် MySQLI_STMT အတန်းအစား၏ပိုင်ဆိုင်မှုဖြစ်သည်။ ၎င်းသည် MySQLI_STMT Quering စစ်ဆင်ရေး၏အမှားအယွင်းကိုပြန်ပို့ရန်အသုံးပြုသည်။ အကယ်. မေးမြန်းမှုကိုအောင်မြင်စွာလုပ်ဆောင်ပါကပစ္စည်းဥစ်စာပိုင်ဆိုင်မှုသည်ဗလာဖြစ်လိမ့်မည်။ အကယ်. အမှားတစ်ခုတွင်အမှားတစ်ခုဖြစ်ပါကအိမ်ခြံမြေသည်အမှားအယွင်းတစ်ခုပြန်ပို့ပေးလိမ့်မည်။ ဤပစ္စည်းဥစ်စာပိုင်ဆိုင်မှုမှတစ်ဆင့် MySQL သည်ထုတ်ပြန်ချက်များကိုထုတ်ပြန်သည့်အခါအမှားအယွင်းများကိုကျွန်ုပ်တို့ဖမ်းယူနိုင်သည်။

 // နမူနာ:အသုံးပြု mysqli_stmt::$error အမှားမက်ဆေ့ခ်ျကိုဖမ်းယူ
if ($stmt->execute()) {
    echo "အောင်မြင်သောစုံစမ်းမှု!";
} else {
    echo "အမှားသတင်းစကား: " . $stmt->error;
}

2 ။ အလိုအလျောက်အမှားသစ်ထုတ်လုပ်ရေးစနစ်ကိုတည်ဆောက်ပါ

ဒေတာဘေ့စ်စစ်ဆင်ရေးအမှားများကိုအလိုအလျောက်မှတ်တမ်းတင်ရန်, ဒေတာဘေ့စ်စစ်ဆင်ရေးအမှားများအားလုံးကိုဖမ်းယူခြင်းနှင့် log file ထဲသို့ဝင်ရောက်မည့်ရိုးရှင်းသောအမှားမှတ်တမ်းစနစ်ကိုသင်ဖန်တီးနိုင်သည်။ MySQLI_STMT ကိုဘယ်လိုသုံးရမယ်ဆိုတာကိုပြသတဲ့ရိုးရှင်းတဲ့ PHP PHOT ဥပမာတစ်ခုမှာဒေတာဘေ့စ်အမှားအယွင်းများကို မှတ်တမ်းတင်ခြင်းနှင့်မှတ်တမ်းအမှားများကိုမှတ်တမ်းတင်ခြင်း။

 <?php

// ဒေတာဘေ့စ် connection တစ်ခုဖန်တီးပါ
$mysqli = new mysqli("localhost", "username", "password", "database");

// ဆက်သွယ်မှုအောင်မြင်မှုရှိမရှိစစ်ဆေးပါ
if ($mysqli->connect_error) {
    die("ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $mysqli->connect_error);
}

// လုပ်ဆောင်ချက်:မှတ်တမ်းတင်ရန်အမှားများကိုမှတ်တမ်းတင်ပါ
function log_error($message) {
    $logFile = '/path/to/log/error_log.txt'; // ဖိုင်လမ်းကြောင်းကို log
    $date = date("Y-m-d H:i:s");
    $logMessage = "[$date] - $message\n";
    file_put_contents($logFile, $logMessage, FILE_APPEND);
}

// ပြင်ဆင်ထား SQL မေးမြန်း
$query = "SELECT * FROM users WHERE id = ?";
$stmt = $mysqli->prepare($query);

if ($stmt === false) {
    // လှျင် SQL 语句ပြင်ဆင်ထား失败,မှတ်တမ်းတင်ခြင်းအမှားများ
    log_error("SQL ပြင်ဆင်ထား失败: " . $mysqli->error);
    die("SQL အမှား: " . $mysqli->error);
}

// 绑定参数并执行မေးမြန်း
$id = 1;
$stmt->bind_param("i", $id);

if (!$stmt->execute()) {
    // လှျင်မေးမြန်း执行失败,မှတ်တမ်းတင်ခြင်းအမှားများ
    log_error("မေးမြန်း执行失败: " . $stmt->error);
    die("မေးမြန်း失败: " . $stmt->error);
}

// ရလဒ်များကိုရယူပါနှင့်သူတို့ကိုဖြစ်စဉ်ကို
$result = $stmt->get_result();
if ($result->num_rows > 0) {
    // output ကိုဒေတာ
    while ($row = $result->fetch_assoc()) {
        echo "အသုံးပြုသူID: " . $row["id"] . " - နံမယ်: " . $row["name"] . "<br>";
    }
} else {
    echo "ရှာမတွေ့ပါ";
}

// အနီးကပ်ထုတ်ပြန်ချက်များနှင့်ဒေတာဘေ့စဆက်သွယ်မှုများ
$stmt->close();
$mysqli->close();

?>

Code ဖော်ပြချက်:

  1. ဒေတာဘေ့စ်ဆက်သွယ်မှု - ဒေတာဘေ့စ်သို့ချိတ်ဆက်ရန် MySQLI () ကို သုံးပါ။ ဆက်သွယ်မှုသည်အောင်မြင်မှုရှိမရှိစစ်ဆေးပါ။

  2. logging function : log_error () function () function ကိုသတ်မှတ်ထားသော log file သို့အမှားအချက်အလက်များကိုဖြည့်စွက်သည်။

  3. SQL Query Execution - SQL query ကို ပြင်ဆင်ခြင်း () , bind_param () ကို ပြင်ဆင်ရန် ပြင်ဆင်ပါ

  4. ရလဒ် - အကယ် . မေးမြန်းမှုအောင်မြင်လျှင်ရလဒ်သည်ရလဒ်ဖြစ်လိမ့်မည်။ အဘယ်သူမျှမဒေတာကိုပြန်မပြန်လျှင် "ဒေတာမတွေ့ပါ" ။

3 ။ ဒေတာဘေ့စ်စစ်ဆင်ရေးအမှားများကိုအချိန်မှန်စောင့်ကြည့်လေ့လာခြင်း

ဒေတာဘေ့စ်စစ်ဆင်ရေးများတွင်အမှားအယွင်းများတွင်အမှားအယွင်းများကိုစောင့်ကြည့်နိုင်ရန်အတွက်အမှားအချက်အလက်များကိုမှတ်တမ်းဖိုင်သို့ရေးနိုင်သည်, ကျွန်ုပ်တို့သည် log file ကိုအချိန်မီစစ်ဆေးခြင်းဖြင့်အချိန်မှန်အမှားအချက်အလက်များကိုရယူနိုင်ပါသည်။ အောက်ဖော်ပြပါသည် PHP ကိုအသုံးပြုခြင်း၏ဥပမာတစ်ခုဖြစ်သည်။

ဥပမာ - အမှားမှတ်တမ်းများကိုအချိန်မှန်စောင့်ကြည့်လေ့လာခြင်း

 <?php

// အစစ်အမှန်အချိန်တွင်မှတ်တမ်းဖိုင်များကိုဖတ်ပါ
function get_recent_errors($logFile) {
    $errors = file_get_contents($logFile);
    return nl2br($errors); // လိုင်းအားလပ်ချိန် HTML လိုင်းချိုး
}

$logFile = '/path/to/log/error_log.txt';
$recentErrors = get_recent_errors($logFile);

echo "<h2>最近的数据库操作အမှား:</h2>";
echo "<pre>$recentErrors</pre>";

?>

Code ဖော်ပြချက်:

  1. မှတ်တမ်းဖိုင်ကိုဖတ်ပါ ။ Log file ၏ contents file_get_contents () မှတဆင့်ဖတ်ပါ။

  2. Display error message : log ထဲရှိအကြောင်းအရာများကိုစာမျက်နှာပေါ်ရှိအကြောင်းအရာများကိုပြပါ, nl2br () function ကိုပိုမိုလွယ်ကူစေရန် NL2BR () function မှတဆင့် tags to tags များသို့ပြောင်းလဲပါ။

4 ။ အကျဉ်းချုပ်

အထက်ပါနည်းလမ်းဖြင့် MySQLI_STMMT :: $ အမှား လုပ်ဆောင်ချက်ကို အသုံးပြု. ဒေတာဘေ့စ်လုပ်ငန်းများ၌အမှားအယွင်းများကိုအလွယ်တကူရှာဖွေနိုင်သည်။ အလိုအလျောက်အမှားသစ်ထုတ်လုပ်ရေးစနစ်နှင့်အချိန်နှင့်တပြေးညီစောင့်ကြည့်လေ့လာခြင်းနှင့်ပေါင်းစပ်ပြီးဒေတာဘေ့စ်လုပ်ငန်းများ၌ပြ problems နာများကိုချက်ချင်းရှာဖွေတွေ့ရှိနိုင်သည်။ ၎င်းသည်ဖွံ့ဖြိုးရေးထိရောက်မှုကိုတိုးတက်စေသည်သာမကထုတ်လုပ်မှုပတ် 0 န်းကျင်တွင်စနစ်ချွင်းချက်များကိုလျင်မြန်စွာတုံ့ပြန်ရန်လည်းကူညီသည်။

အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်စနစ်အားအီးမေးလ်ဖြင့်ရှာဖွေခြင်း, ဒေတာဘေ့စ်ကို အသုံးပြု. အမှားအချက်အလက်များကိုမှတ်တမ်းတင်ခြင်းကဲ့သို့သောစနစ်ကိုလိုအပ်သလိုထပ်မံချဲ့ထွင်နိုင်သည်။