လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> MySQLI_STMT :: $ အမှားနှင့် MySQLI_STMM :: Execute ()

MySQLI_STMT :: $ အမှားနှင့် MySQLI_STMM :: Execute ()

gitbox 2025-05-28

PHP တွင် MySQLI extension သည်ဒေတာဘေ့စ်လုပ်ငန်းများကိုလုပ်ဆောင်ရန်အရာဝတ်ထုရည်ရွယ်ထားသည့်နည်းလမ်းတစ်ခုဖြစ်သည်။ MySQLI_STMT အတန်းသည် SQL ထုတ်ပြန်ချက်များကိုပြင်ဆင်ခြင်းနှင့်ကွပ်မျက်ရန်ကိရိယာတစ်ခုဖြစ်သည်။ MySQLI_STMMT ကို အသုံးပြု. SQL ထုတ်ပြန်ချက်များ --: Execute () ကို အသုံးပြု. SQL ထုတ်ပြန်ချက်များကိုလုပ်ဆောင်သောအခါကောင်းမွန်သောအမှားအယွင်းရှိကိုင်တွယ်ခြင်း၏အဓိကအစိတ်အပိုင်းဖြစ်သည်။ ဤဆောင်းပါးသည် MySQLI_STMT ကိုမည်သို့ပေါင်းစပ်ရမည် --: SQL ထုတ်ပြန်ချက်များကိုလုပ်ဆောင်သည့်အခါဖြစ်ပေါ်နိုင်သည့်အမှားများကိုကိုင်တွယ်ရန် $ အမှား လုပ်ဆောင်ချက်။

1 ။ MySQLI_STMT :: Execute ()

MySQLI_STMT ::: Execute () သည် MySQLI_STMT အတန်းထဲတွင် MySQLI_STMT အတန်းထဲတွင်နည်းလမ်းဖြစ်သည်။ SQL ကိုကွပ်မျက်သည့်အခါ syntax အမှားအယွင်းများ, ဆက်သွယ်မှုပြ problems နာများစသည်တို့ကဲ့သို့သောအမှားများကိုသင်ကြုံတွေ့ရနိုင်သည်။ စနစ်၏ကြံ့ခိုင်မှုကိုတိုးတက်စေရန်ဤအမှားများကိုစစ်ဆေးပြီးကိုင်တွယ်သင့်သည်။

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

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

// ပြင်ဆင်ထားSQLအသေအချာပေြာဆိုချက်
$stmt = $mysqli->prepare("INSERT INTO users (username, email) VALUES (?, ?)");

// parameters တွေကိုချည်ထား
$stmt->bind_param("ss", $username, $email);

// parameters တွေကိုသတ်မှတ်
$username = 'john_doe';
$email = '[email protected]';

// ကရိယာတန်းဆာSQLအသေအချာပေြာဆိုချက်
if ($stmt->execute()) {
    echo "ဒေတာသွင်းအောင်မြင်စွာ!";
} else {
    echo "ကရိယာတန်းဆာ失败: " . $stmt->error;
}

// ဆက်သွယ်မှုကိုပိတ်ပါ
$stmt->close();
$mysqli->close();
?>

2 ။ အမှားကိုင်တွယ်ခြင်း - MySQLI_STMT :: $ အမှားကို သုံးပါ

MySQLI_STMM :: $ အမှား သည် MySQLI_STMT အတန်း၏အများပြည်သူပိုင်ဆိုင်မှုဖြစ်သည်။ MySQLI_STMTMT ကို အသုံးပြု. SQL ထုတ်ပြန်ချက်များကိုကွပ်မျက်သည့်အခါ MySQLI_STMT :: MySQLI_STMT :: အမှားအယွင်းများ တွင်အမှားအယွင်းများပါ 0 င်ပါလိမ့်မည်။ ဤနည်းအားဖြင့်ကျွန်ုပ်တို့သည်လျှောက်လွှာတည်ငြိမ်မှုကိုသေချာစေရန်အမှားအယွင်းများကိုဖမ်းယူနိုင်သည်။

အထက်ပါကုဒ်နမူနာတွင် SQL ထုတ်ပြန်ချက်များကိုအကောင်အထည်ဖော်သောအခါအမှားများကိုမည်သို့စစ်ဆေးရမည်ကိုကျွန်ုပ်တို့တွေ့နိုင်သည်။

 if ($stmt->execute()) {
    echo "ဒေတာသွင်းအောင်မြင်စွာ!";
} else {
    echo "ကရိယာတန်းဆာ失败: " . $stmt->error;
}

အကယ်. $ stmt-> execute () ကို အောင်မြင်စွာအပြီးသတ်ပြီးပြန်လည်ရောက်ရှိပြီး ပြန်လည်ရောက်ရှိ သည်ဆိုပါကထည့်သွင်းခြင်းစစ်ဆင်ရေးပြီးစီးပြီးအောင်မြင်မှုသတင်းစကားကိုပြန်ပို့သည်။ ဒီလိုမှမဟုတ်ရင်အမှားအယွင်းတစ်ခုပြန်လာပြီးအမှားအယွင်းတစ်ခုဖြစ်တဲ့ $ stmt-> အမှား တစ်ခုမှရရှိသည်။

3 ။ MySQLI_STMMT :: execute () နှင့် mySqli_stmt ပေါင်းစပ်ခြင်းအတွက်အကောင်းဆုံးအလေ့အကျင့်များ :: $ အမှား

အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင် execute လုပ်ရန်ပျက်ကွက်သောအမှားများကိုရယူခြင်းအပြင်အမှားသတင်းအချက်အလက်များကိုမှတ်တမ်းတွင်မှတ်တမ်းတင် ထား. စနစ်ပြ problems နာများကိုအချိန်မီတုံ့ပြန်နိုင်ရန်အတွက်မှတ်တမ်းတင်နိုင်သည်။ ဤတွင်ပိုမိုပြည့်စုံသောအမှားကိုင်တွယ်ပုံဥပမာတစ်ခုမှာ -

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

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

// ပြင်ဆင်ထားSQLအသေအချာပေြာဆိုချက်
$stmt = $mysqli->prepare("INSERT INTO users (username, email) VALUES (?, ?)");

// parameters တွေကိုချည်ထား
$stmt->bind_param("ss", $username, $email);

// parameters တွေကိုသတ်မှတ်
$username = 'john_doe';
$email = '[email protected]';

// ကရိယာတန်းဆာSQLအသေအချာပေြာဆိုချက်并进行အမှားကိုင်တွယ်
if ($stmt->execute()) {
    echo "ဒေတာသွင်းအောင်မြင်စွာ!";
} else {
    // အမှားကိုင်တွယ်:မှတ်တမ်းမှတ်တမ်းများနှင့် output အမှားများမက်ဆေ့ခ်ျများ
    error_log("SQLကရိယာတန်းဆာ失败: " . $stmt->error, 3, "/var/log/myapp_error.log");
    echo "ကရိယာတန်းဆာ失败,ကျေးဇူးပြု. နောက်မှထပ်ကြိုးစားပါ!";
}

// ဆက်သွယ်မှုကိုပိတ်ပါ
$stmt->close();
$mysqli->close();
?>

ဤဥပမာတွင်ကွပ်မျက်မှုမအောင်မြင်သည့်အခါအမှားအယွင်းသည်စာမျက်နှာသို့ output မဟုတ်ဘဲ log file တွင်လည်းမှတ်တမ်းတင်ထားသည်။

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

MySQLI_STMT :: MySQLI_STMT :: MySQLI_STMT ::: အမှားအယွင်းများအတွက် $ အမှားလုပ်ခြင်းသည် developer များကို SQL သတ်မှုတွင်အမှားအယွင်းများကိုဖမ်းယူနိုင်ပြီးပြ problems နာများပေါ်ပေါက်လာသောအခါအသုံးပြုသူများသို့မဟုတ် developer များသို့ချက်ချင်းတုံ့ပြန်ချက်များပေးနိုင်သည်။ သင့်လျော်သောအမှားဖြင့်ကိုင်တွယ်ခြင်းဖြင့်ပရိုဂရမ်ကိုတိုးတက်အောင်မလုပ်နိုင်သာမကဖွံ့ဖြိုးတိုးတက်မှုနှင့်ထိန်းသိမ်းခြင်း၏ထိရောက်မှုကိုလည်းတိုးတက်စေနိုင်သည်။