PHP ကို အသုံးပြု. MySQL ဒေတာဘေ့စ်များကိုအသုံးပြုသောအခါလုံခြုံရေးနှင့်စွမ်းဆောင်ရည်ကိုတိုးတက်စေရန်ပြင်ဆင်ထားသည့်ဖော်ပြချက်များမှာအဓိကနည်းပညာတစ်ခုဖြစ်သည်။ MySQLI :: stmt_init သည် MySQLI အတန်းထဲတွင် Proprocessing statements ords များကိုစတင်ရန်အသုံးပြုသော function တစ်ခုဖြစ်သည်။ ကြိုတင်ပြင်ဆင်ထားသည့် () နှင့် bind_param ()) နှင့် bind_param () နည်းလမ်းများနှင့်ပူးပေါင်းဆောင်ရွက်ရန်အသုံးပြုလေ့ရှိသည်။
ဤဆောင်းပါးသည် MySQLI :: stmt_init ကို အသုံးပြု. နောက်ဆုံးအခြေအနေ ဖော်ပြချက်များကိုမည်သို့အကောင်အထည်ဖော်ရမည်နှင့် ပတ်သက်. အသေးစိတ်ဖော်ပြချက်များကိုအသေးစိတ်ဖော်ပြထားသည်။
MySQLI :: stmt_init သည် MySQLI_STMT အရာဝတ်ထုကိုစတင်ရန်အသုံးပြုသော function တစ်ခုဖြစ်သည်။ Syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -
mysqli_stmt mysqli::stmt_init ( void )
၎င်းသည်မတားဆီးနိုင်သည့်ကြေညာချက်နှင့်လက်ရှိဆက်သွယ်မှုနှင့်ဆက်စပ်သော MySQLI_STMT အရာဝတ်ထုကိုပြန်လည်ရောက်ရှိစေသည်။ ထို့နောက်ဤအရာဝတ်ထုကို ပြင်ဆင်ရန် () , bind_param () , execute () နှင့်အခြားစစ်ဆင်ရေးများကိုပြုလုပ်ရန်အသုံးပြုနိုင်သည်။
အောက်ပါဥပမာသည်အသုံးပြုသူအချက်အလက်များကို MySQLI :: stmt_init နှင့် preprocessing ထုတ်ပြန်ချက်များမှတစ်ဆင့်မည်သို့လုံခြုံစွာမွမ်းမံရမည်ကိုပြသသည်။
<?php
$mysqli = new mysqli("localhost", "username", "password", "database");
// ဆက်သွယ်မှုအောင်မြင်မှုရှိမရှိစစ်ဆေးပါ
if ($mysqli->connect_error) {
die("ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $mysqli->connect_error);
}
// ကြေညာချက်အရာဝတ်ထုကိုအစပျိုး
$stmt = $mysqli->stmt_init();
// ပြင်ဆင်ထား SQL အသေအချာပေြာဆိုချက်
if ($stmt->prepare("UPDATE users SET email = ? WHERE id = ?")) {
// parameters တွေကိုချည်ထား:s တစ် string ကိုကိုယ်စားပြုတယ်,i ကိန်းဂဏန်းများကိုဖော်ပြသည်
$stmt->bind_param("si", $email, $id);
// parameter သည်တန်ဖိုးများကိုသတ်မှတ်ပါ
$email = "newemail@m66.net";
$id = 42;
// 执行အသေအချာပေြာဆိုချက်
if ($stmt->execute()) {
echo "အသုံးပြုသူသတင်းအချက်အလက်ကိုအောင်မြင်စွာမွမ်းမံ!";
} else {
echo "အသစ်ပြောင်းခြင်းမအောင်မြင်ပါ: " . $stmt->error;
}
// 关闭အသေအချာပေြာဆိုချက်
$stmt->close();
} else {
echo "SQL ပြင်ဆင်ထား失败: " . $stmt->error;
}
$mysqli->close();
?>
အသုံးပြုသူသည်မွမ်းမံချက်ကြေငြာချက်တွင် input ကိုအတည်ပြုပြီးရင်တောင် SQL တည်ဆောက်ရန် strings splicing ကိုရှောင်ပါ။ Preprocessing ထုတ်ပြန်ချက်များသည် SQL ဆေးထိုးတိုက်ခိုက်မှုများကိုထိရောက်စွာတားဆီးနိုင်သည်။
stmtt_init () , bind_param ( ) , bind_ ) နှင့် execute လုပ်ခြင်း ကဲ့သို့သောစစ်ဆင်ရေးအတွက်ပြန်လည်လုပ်ဆောင်မှုကိုသေချာစစ်ဆေးပါ။ ၎င်းသည်အစောပိုင်းကပြ problems နာများကိုရှာဖွေတွေ့ရှိနိုင်ပြီးအမှားများကိုရှာဖွေနိုင်သည်။
ခြွင်းချက် mode ကိုဖွင့်ခြင်းအားဖြင့်အမှားကိုင်တွယ်မှုကိုရိုးရှင်းနိုင်သည်။
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
Enable လုပ်ရင်အမှားတစ်ခုကခြွင်းချက်တစ်ခုချပစ်ပြီး Try-Catch Complet ကိုသုံးပြီးဖမ်းယူဖို့ပိုလွယ်ကူစေလိမ့်မယ်။
သင်ဖော်ပြသည့်အရာဝတ်ထုကိုသင်အသုံးပြုသောအခါတိုင်းအရင်းအမြစ်ဖြန့်ချိရန်သေချာစေရန် $ stmt-> အနီးကပ် () ကိုခေါ်ဆိုသင့်သည်။
အကယ်. parameters အရေအတွက်ကိုမသတ်မှတ်ထားပါက dynamic parameter binding ကိုအကောင်အထည်ဖော်ရန် Call_User_Func_array () ကို သုံးနိုင်သည်။ အသုတ်မွမ်းမံမှုများသို့မဟုတ်ပြောင်းလွယ်ပြင်လွယ် update ထုတ်ပြန်ချက်များကိုတည်ဆောက်ခြင်းသို့မဟုတ်တည်ဆောက်ခြင်းသည်အလွန်အသုံးဝင်သည်။
အကယ်. မွမ်းမံမှုများ သည်စစ်ဆင်ရေးတစ်ခုတွင်ပါ 0 င်ပါကငွေပေးချေမှုကို အသုံးပြု. စဉ်းစားပါ။
$mysqli->begin_transaction();
try {
// မျိုးစုံ execute update ခဲှစိတ်ကုသ
$stmt1 = $mysqli->prepare("UPDATE ...");
$stmt1->bind_param(...);
$stmt1->execute();
$stmt2 = $mysqli->prepare("UPDATE ...");
$stmt2->bind_param(...);
$stmt2->execute();
$mysqli->commit();
} catch (Exception $e) {
$mysqli->rollback();
echo "ငွေပေးငွေယူပျက်ကွက်: " . $e->getMessage();
}
MySQLI :: stmt_init ကိုအသုံးပြုပြီး update ကို ထုတ်ပြန်ချက်များကို executed လုပ်ခြင်းသည် PHP တွင်ဒေတာဘေ့စ်ကိုလုပ်ကိုင်ရန်အလွန်အမင်းအကြံပြုထားသောနည်းလမ်းဖြစ်သည်။ Preprocessing ထုတ်ပြန်ချက်များကိုအသုံးပြုခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်ကျွန်ုပ်တို့၏အစီအစဉ်များကိုလုံခြုံရေးနှင့်ထိန်းသိမ်းမှုကိုတိုးတက်စေနိုင်သည်။ ငွေပေးငွေယူနှင့်အမှားကိုင်တွယ်သည့်ယန္တရားများပေါင်းစပ်ခြင်းများသည်အလုံးစုံအားဖြည့်စွက်မှုကိုပိုမိုတိုးတက်စေနိုင်သည်။