လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> MySQLI_STMTMT :: $ insert_id တို့နှင့်ပေါင်းစပ်ပြီးမှန်ကန်သောထည့်သွင်းထားသော ID ကိုမည်သို့ရယူရမည်နည်း။

MySQLI_STMTMT :: $ insert_id တို့နှင့်ပေါင်းစပ်ပြီးမှန်ကန်သောထည့်သွင်းထားသော ID ကိုမည်သို့ရယူရမည်နည်း။

gitbox 2025-06-03

1 ။ ငွေပေးငွေယူနှင့် inserction ID ဝယ်ယူ၏စိန်ခေါ်မှု

ကျွန်ုပ်တို့တွင်ထည့်သွင်းမှုအမျိုးမျိုးကိုလုပ်ဆောင်ခြင်းသို့မဟုတ်ငွေပေးငွေယူတွင်အချက်အလက်များကိုထည့်သွင်းပါကအထူးသဖြင့် Multi-Threaded သို့မဟုတ် Multi-user concurrent accure access ကိုမှတစ်ဆင့်ကိုယ်တိုင် ပြုလုပ်သော ID ကိုတိုက်ရိုက်ဖတ်ရန်တိကျသော ID ကိုဖတ်ရန်တိကျနိုင်သည်။ PreProcessed Statement ၏ $ Insert_id ၏ပိုင်ဆိုင်မှုကို အသုံးပြု. လက်ရှိကြေငြာချက်မှသက်ရောက်မှုရှိသော Insert ID ကိုရရှိရန်သေချာစေနိုင်သည်။

2 ။ MySQLI_STMMT :: $ insert_id ကို မိတ်ဆက်ပါ

MySQLI_STMT :: $ Insert_id သည် PHP 8.1 နှင့်နောက်ပိုင်းဗားရှင်းများတွင်ထည့်သွင်းထားသော attribute အသစ်တစ်ခုဖြစ်သည်။ ၎င်းကိုအထူးပြုလုပ်ထားသောထုတ်ပြန်ချက်များကိုအကောင်အထည်ဖော်ပြီးနောက် Self-incourment ID ကိုရယူရန်အထူးအသုံးပြုသည်။ ၎င်းသည် ဒေါ်လာ MySQLI-> Insert_id ထက်ပိုမိုတိကျမှန်ကန်ပြီးလုံခြုံသည်။


3 ။ နမူနာကုဒ်

အောက်ပါဥပမာသည် MySQLI_STMMT ကို ငွေပေးချေမှုကို အသုံးပြု. ထည့်သွင်းရန်နှင့် Insert Record ၏ ID ကိုရယူရန်မည်သို့လုပ်ဆောင်ရမည်ကိုပြသသည်။

 <?php
$mysqli = new mysqli("gitbox.net", "username", "password", "database");

// ငွေပေးငွေယူတစ်ခုစတင်ပါ
$mysqli->begin_transaction();

try {
    // Preprocessing ထည့်သွင်းဖော်ပြချက်များ
    $stmt = $mysqli->prepare("INSERT INTO users (username, email) VALUES (?, ?)");

    $username = 'alice';
    $email = '[email protected]';

    $stmt->bind_param("ss", $username, $email);

    // သွင်းကိုလုပ်ဆောင်ပါ
    $stmt->execute();

    // ထည့်သွင်းပါ ID
    $insertId = $stmt->insert_id;

    echo "အသစ်ထည့်သွင်းအသုံးပြုသူရဲ့IDဟုတ်ကဲ့: " . $insertId . "\n";

    // တင်သွင်းမှုတင်သွင်း
    $mysqli->commit();

    $stmt->close();
} catch (Exception $e) {
    // အမှားတစ်ခု rollback ငွေပေးငွေယူဖြစ်ပွားခဲ့သည်
    $mysqli->rollback();
    echo "ငွေပေးငွေယူပျက်ကွက်,နောက်သို့လှိမ့်。အမှားသတင်းစကား: " . $e->getMessage();
}

$mysqli->close();
?>

4 ။ အဓိကအချက်များအကျဉ်းချုပ်

  • ငွေပေးငွေယူတစ်ခုတွင်ထည့်သွင်းခြင်းလုပ်ငန်းတစ်ခုပြုလုပ်သောအခါပထမ ဦး ဆုံး MySQLI-> Indeport_transaction () စတင်ရန်အတွက်ပထမဆုံးခေါ်ဆိုပါ။ စစ်ဆင်ရေးပြီးစီးပြီးနောက် $ MySQLI-> commit () တင်သွင်းရန်ဖုန်းခေါ်ပါ။ အကယ်. ပျက်ကွက်ပါက MySQLI-> Rollback () ကို Rollback သို့ခေါ်ဆိုပါ။

  • SQL Injection ၏အန္တရာယ်ကိုရှောင်ရှားရန် instrocess ကိုသုံးရန် MySQLI_STMT PROPOCTSING ကြေငြာချက်ကိုသုံးပါ။

  • ထည့်သွင်းအောင်မြင်ပြီးနောက်၎င်းသည် Auto-Increment ID ကို $ stmt-> ထည့်သွင်းမှုများကို သေချာစေရန် Authert_ID မှတဆင့်ရယူပါ။

  • ဒေတာများ၏ရှေ့နောက်ညီညွတ်မှုနှင့်သမာဓိကိုသေချာစေရန်ခြွင်းချက်ကိုင်တွယ်စဉ်အတွင်းအရောင်းအ 0 ယ်များကိုပြန်လှိမ့်ချထားရမည်။


5 ။ လိုက်ဖက်တဲ့ဖော်ပြချက်

MySQLI_STMT :: $ insert_id ကို PHP 8.1 နှင့်အထက်တွင်သာရနိုင်သည်။ အကယ်. သင်သည် PHP ဗားရှင်းဟောင်းကိုအသုံးပြုနေပါက $ MySQLI-> Insert_id ကို အသုံးပြု. သင်စဉ်းစားနိုင်သည်။ သို့သော်တစ်ပြိုင်နက်တည်းကပြ issues နာများကိုဂရုပြုနိုင်သည်။