PHP တွင် MySQLI သည်အသုံးများသော database extension ဖြစ်သည်။ ၎င်းသည်ဒေတာဘေ့စ်နှင့်အပြန်အလှန်ဆက်သွယ်ရန်နည်းလမ်းများစွာကိုထောက်ပံ့ပေးသည်။ MySQLI_STMT အတန်းသည် MySQLI extension ၏အစိတ်အပိုင်းဖြစ်သည်။ ၎င်းသည် Preprocessing ထုတ်ပြန်ချက်များကိုလုပ်ဆောင်ရန်အသုံးပြုသော MySQLI တိုးချဲ့မှု၏အစိတ်အပိုင်းဖြစ်သည်။ အသုံးများသောလိုအပ်ချက်မှာ developer များ Debug နှင့်ပြ problems နာများကိုဖြေရှင်းရန် SQL Queries များကိုကွပ်မျက်ခံရသောအခါအမှားမက်ဆေ့ခ်ျများကိုဖမ်းယူရန်နှင့်ပြသရန်ဖြစ်သည်။ MySQLI_STMM :: $ အမှား မှတစ်ဆင့် SQL ထုတ်ပြန်ချက်များကိုကွပ်မျက်သည့်အခါအသေးစိတ်အချက်အလက်များကိုမည်သို့ရယူရမည်ကိုဤဆောင်းပါးကဤဆောင်းပါးသည်မိတ်ဆက်ပေးလိမ့်မည်။
Preprocessing ထုတ်ပြန်ချက်များ ကို အသုံးပြုသောအခါ, MySQLI_STMT :: $ အမှား variable ကို query ကိုကွပ်မျက်သည့်အခါအမှားသတင်းအချက်အလက်များကိုကယ်တင်သည်။ အကယ်. SQL Execution သည်အောင်မြင်လျှင်တန်ဖိုးသည်အချည်းနှီးသော string တစ်ခုဖြစ်သည်။ အကယ်. SQL Execution ပျက်ကွက်ပါကအမှားအယွင်းတစ်ခုသို့ပြန်ပို့သည်။
အောက်ပါဥပမာသည် MySQLI_STMTT ကိုမည်သို့အသုံးပြုရမည်ကိုပြသသည့်ရိုးရှင်းသောဥပမာတစ်ခုမှာ SQL Query များကိုကွပ်မျက်သည့်အခါအမှားအချက်အလက်များရရန် $ အမှားအယွင်းများ ။
<?php
// ဒေတာဘေ့စ် connection တစ်ခုဖန်တီးပါ
$mysqli = new mysqli("localhost", "username", "password", "database_name");
// ဆက်သွယ်မှုအောင်မြင်မှုရှိမရှိစစ်ဆေးပါ
if ($mysqli->connect_error) {
die("ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $mysqli->connect_error);
}
// ပြင်ဆင်ထား SQL အသေအချာပေြာဆိုချက်
$sql = "SELECT * FROM users WHERE id = ?";
$stmt = $mysqli->prepare($sql);
// 检查အသေအချာပေြာဆိုချက်是否ပြင်ဆင်ထား成功
if ($stmt === false) {
die("ပြင်ဆင်ထားအသေအချာပေြာဆိုချက်失败: " . $mysqli->error);
}
// parameters တွေကိုချည်ထား
$id = 1;
$stmt->bind_param("i", $id);
// တစ် ဦး စုံစမ်းမှု execute
if (!$stmt->execute()) {
echo "ကရိယာတန်းဆာ SQL အသေအချာပေြာဆိုချက်时出错: " . $stmt->error;
} else {
echo "အောင်မြင်သောစုံစမ်းမှု!";
}
// 关闭အသေအချာပေြာဆိုချက်和连接
$stmt->close();
$mysqli->close();
?>
Code တွင် $ stmt-> အမှားသည် SQL query ကိုအကောင်အထည်ဖော်သောအခါအမှားအချက်အလက်များကိုဖမ်းယူရန်အသုံးပြုသည်။
အကယ်. စုံစမ်းမှုကွပ်မျက်မှုမအောင်မြင်ပါက ဒေါ်လာ stmt-> အမှားတစ်ခုတွင် developer များပြ the နာကိုနေရာချရန်ကူညီနိုင်သည့်သီးခြားအမှားအယွင်းတစ်ခုပါ 0 င်မည်။
အကယ်. စုံစမ်းမှုကိုအောင်မြင်စွာကွပ်မျက်ခံရလျှင် ဒေါ်လာ stmt-> အမှားသည် အချည်းနှီးသော string ကိုပြန်ပေးလိမ့်မည်။
$ stmt-> အမှား မှတဆင့်အမှားသတင်းအချက်အလက်ကိုရယူပြီးနောက်ကွဲပြားခြားနားသောအမှားသတင်းအချက်အလက်အပေါ် အခြေခံ. ကွဲပြားခြားနားသော debugging အစီအမံယူနိုင်ပါတယ်။ အသုံးများသောအမှားများတွင် SQL syntax အမှားများ, စားပွဲတင်သို့မဟုတ်လယ်ကွင်းအမည်စာလုံးပေါင်းအမှားများသို့မဟုတ် parameter သည်အမှားများပါ 0 င်နိုင်သည်။
ပရိုဂရမ်တွင်အမှားသတင်းအချက်အလက်များကိုဖော်ထုတ်ခြင်းမှရှောင်ရှားနိုင်ရန်အတွက် developer များသည်များသောအားဖြင့်၎င်းကိုစာမျက်နှာပေါ်တွင်တိုက်ရိုက်ပြသမည့်အစားသတင်းအချက်အလက်များကိုမှတ်တမ်းဖိုင်များထဲသို့ဝင်ရောက်ကြသည်။
<?php
// ဒေတာဘေ့စ် connection တစ်ခုဖန်တီးပါ
$mysqli = new mysqli("localhost", "username", "password", "database_name");
// ဆက်သွယ်မှုအောင်မြင်မှုရှိမရှိစစ်ဆေးပါ
if ($mysqli->connect_error) {
die("ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $mysqli->connect_error);
}
// ပြင်ဆင်ထား SQL အသေအချာပေြာဆိုချက်
$sql = "SELECT * FROM users WHERE id = ?";
$stmt = $mysqli->prepare($sql);
// 检查အသေအချာပေြာဆိုချက်是否ပြင်ဆင်ထား成功
if ($stmt === false) {
// မှတ်တမ်းအမှားမှတ်တမ်း
error_log("ပြင်ဆင်ထား SQL အသေအချာပေြာဆိုချက်失败: " . $mysqli->error, 3, "/path/to/error_log.txt");
die("ပြင်ဆင်ထားအသေအချာပေြာဆိုချက်失败");
}
// parameters တွေကိုချည်ထား
$id = 1;
$stmt->bind_param("i", $id);
// တစ် ဦး စုံစမ်းမှု execute
if (!$stmt->execute()) {
// မှတ်တမ်းအမှားမှတ်တမ်း
error_log("ကရိယာတန်းဆာ SQL အသေအချာပေြာဆိုချက်时出错: " . $stmt->error, 3, "/path/to/error_log.txt");
echo "စုံစမ်းမှုမအောင်မြင်ပါ,ကျေးဇူးပြု. မှတ်တမ်းဖိုင်ကိုစစ်ဆေးပါ。";
} else {
echo "အောင်မြင်သောစုံစမ်းမှု!";
}
// 关闭အသေအချာပေြာဆိုချက်和连接
$stmt->close();
$mysqli->close();
?>
စုံစမ်းမှုကွပ်မျက်ခံရသောအခါအမှားအယွင်း () function ကို error_log () function သည် log file သို့အမှားအယွင်းကိုရေးသားခဲ့သည်။ ၎င်းသည်နောက်ဆုံးအသုံးပြုသူအားအသေးစိတ်အမှားအချက်အလက်များကိုဖော်ထုတ်ခြင်းနှင့်လျှောက်လွှာလုံခြုံရေးကိုတိုးတက်စေသည်။
ချို့ယွင်းချက်မှတ်တမ်းဖိုင်များကိုလုံခြုံသောနေရာ၌ထားရှိပြီး developer များသို့မဟုတ်အုပ်ချုပ်ရေးမှူးများမှသာလက်လှမ်းမီနိုင်သည်။
MySQLI_STMT :: $ အမှား မှတစ်ဆင့် SQL ၏မေးမြန်းမှုကိုပြုလုပ်ရာတွင်ပြ problems နာများကိုအလျင်အမြန်ဖြည့်ဆည်းရန်နှင့်ဖြေရှင်းရန်ကူညီသည့်အခါအသေးစိတ်အချက်အလက်များကိုအလွယ်တကူရယူနိုင်သည်။ Developer များကအမှားမက်ဆေ့ခ်ျကိုတိုက်ရိုက်ပြသရန်သို့မဟုတ်အမှန်တကယ်လိုအပ်ချက်များအပေါ် အခြေခံ. မှတ်တမ်းဖိုင်တွင်မှတ်တမ်းတင်ရန်ဆုံးဖြတ်နိုင်သည်။ MySQLI extension ကိုအသုံးပြုသောအခါအမှားအချက်အလက်များကိုဖမ်းယူခြင်းသည်အလွန်အရေးကြီးသောလည်ပတ်မှုတစ်ခုဖြစ်ပြီးလျှောက်လွှာ၏ကြံ့ခိုင်မှုနှင့်လုံခြုံမှုကိုထိရောက်စွာတိုးတက်စေနိုင်သည်။