လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Update ကို execute လုပ်ရန် stmt_init ကိုအသုံးပြုရန်အကြံပြုထားသောနည်းလမ်း

Update ကို execute လုပ်ရန် stmt_init ကိုအသုံးပြုရန်အကြံပြုထားသောနည်းလမ်း

M66 2025-05-29

PHP ကို ​​အသုံးပြု. MySQL ဒေတာဘေ့စ်များကိုအသုံးပြုသောအခါလုံခြုံရေးနှင့်စွမ်းဆောင်ရည်ကိုတိုးတက်စေရန်ပြင်ဆင်ထားသည့်ဖော်ပြချက်များမှာအဓိကနည်းပညာတစ်ခုဖြစ်သည်။ MySQLI :: stmt_init သည် MySQLI အတန်းထဲတွင် Proprocessing statements ords များကိုစတင်ရန်အသုံးပြုသော function တစ်ခုဖြစ်သည်။ ကြိုတင်ပြင်ဆင်ထားသည့် () နှင့် bind_param ()) နှင့် bind_param () နည်းလမ်းများနှင့်ပူးပေါင်းဆောင်ရွက်ရန်အသုံးပြုလေ့ရှိသည်။

ဤဆောင်းပါးသည် MySQLI :: stmt_init ကို အသုံးပြု. နောက်ဆုံးအခြေအနေ ဖော်ပြချက်များကိုမည်သို့အကောင်အထည်ဖော်ရမည်နှင့် ပတ်သက်. အသေးစိတ်ဖော်ပြချက်များကိုအသေးစိတ်ဖော်ပြထားသည်။

1 ။ MySQLI :: stmt_init ဆိုတာဘာလဲ။

MySQLI :: stmt_init သည် MySQLI_STMT အရာဝတ်ထုကိုစတင်ရန်အသုံးပြုသော function တစ်ခုဖြစ်သည်။ Syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -

 mysqli_stmt mysqli::stmt_init ( void )

၎င်းသည်မတားဆီးနိုင်သည့်ကြေညာချက်နှင့်လက်ရှိဆက်သွယ်မှုနှင့်ဆက်စပ်သော MySQLI_STMT အရာဝတ်ထုကိုပြန်လည်ရောက်ရှိစေသည်။ ထို့နောက်ဤအရာဝတ်ထုကို ပြင်ဆင်ရန် () , bind_param () , execute () နှင့်အခြားစစ်ဆင်ရေးများကိုပြုလုပ်ရန်အသုံးပြုနိုင်သည်။

2 ။ အခြေခံအသုံးပြုမှုဥပမာ - နောက်ဆုံးအခြေအနေကြေညာချက်ကို 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();
?>

3 ။ အကောင်းဆုံးအလေ့အကျင့်

1 ။ အမြဲတမ်း Preprocessing ထုတ်ပြန်ချက်များကိုသုံးပါ

အသုံးပြုသူသည်မွမ်းမံချက်ကြေငြာချက်တွင် input ကိုအတည်ပြုပြီးရင်တောင် SQL တည်ဆောက်ရန် strings splicing ကိုရှောင်ပါ။ Preprocessing ထုတ်ပြန်ချက်များသည် SQL ဆေးထိုးတိုက်ခိုက်မှုများကိုထိရောက်စွာတားဆီးနိုင်သည်။

2 ။ စစ်ဆင်ရေးတိုင်းကိုစစ်ဆေးပါ

stmtt_init () , bind_param ( ) , bind_ ) နှင့် execute လုပ်ခြင်း ကဲ့သို့သောစစ်ဆင်ရေးအတွက်ပြန်လည်လုပ်ဆောင်မှုကိုသေချာစစ်ဆေးပါ။ ၎င်းသည်အစောပိုင်းကပြ problems နာများကိုရှာဖွေတွေ့ရှိနိုင်ပြီးအမှားများကိုရှာဖွေနိုင်သည်။

3 ။ Try-Catch ကို သုံးပါ ( MySQLI_REPORE () )

ခြွင်းချက် mode ကိုဖွင့်ခြင်းအားဖြင့်အမှားကိုင်တွယ်မှုကိုရိုးရှင်းနိုင်သည်။

 mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

Enable လုပ်ရင်အမှားတစ်ခုကခြွင်းချက်တစ်ခုချပစ်ပြီး Try-Catch Complet ကိုသုံးပြီးဖမ်းယူဖို့ပိုလွယ်ကူစေလိမ့်မယ်။

4 ။ အရင်းအမြစ်များကိုသန့်ရှင်းရေး

သင်ဖော်ပြသည့်အရာဝတ်ထုကိုသင်အသုံးပြုသောအခါတိုင်းအရင်းအမြစ်ဖြန့်ချိရန်သေချာစေရန် $ stmt-> အနီးကပ် () ကိုခေါ်ဆိုသင့်သည်။

4 ။ အဆင့်မြင့်ကျွမ်းကျင်မှု

မျိုးစုံ parameters တွေကို dynamically ချည်နှောင်

အကယ်. parameters အရေအတွက်ကိုမသတ်မှတ်ထားပါက dynamic parameter binding ကိုအကောင်အထည်ဖော်ရန် Call_User_Func_array () ကို သုံးနိုင်သည်။ အသုတ်မွမ်းမံမှုများသို့မဟုတ်ပြောင်းလွယ်ပြင်လွယ် update ထုတ်ပြန်ချက်များကိုတည်ဆောက်ခြင်းသို့မဟုတ်တည်ဆောက်ခြင်းသည်အလွန်အသုံးဝင်သည်။

ငွေပေးငွေယူအပြောင်းအလဲနဲ့သုံးပြီးစစ်ဆင်ရေးကို 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();
}

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

MySQLI :: stmt_init ကိုအသုံးပြုပြီး update ကို ထုတ်ပြန်ချက်များကို executed လုပ်ခြင်းသည် PHP တွင်ဒေတာဘေ့စ်ကိုလုပ်ကိုင်ရန်အလွန်အမင်းအကြံပြုထားသောနည်းလမ်းဖြစ်သည်။ Preprocessing ထုတ်ပြန်ချက်များကိုအသုံးပြုခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်ကျွန်ုပ်တို့၏အစီအစဉ်များကိုလုံခြုံရေးနှင့်ထိန်းသိမ်းမှုကိုတိုးတက်စေနိုင်သည်။ ငွေပေးငွေယူနှင့်အမှားကိုင်တွယ်သည့်ယန္တရားများပေါင်းစပ်ခြင်းများသည်အလုံးစုံအားဖြည့်စွက်မှုကိုပိုမိုတိုးတက်စေနိုင်သည်။