ကျွန်ုပ်တို့တွင်ထည့်သွင်းမှုအမျိုးမျိုးကိုလုပ်ဆောင်ခြင်းသို့မဟုတ်ငွေပေးငွေယူတွင်အချက်အလက်များကိုထည့်သွင်းပါကအထူးသဖြင့် Multi-Threaded သို့မဟုတ် Multi-user concurrent accure access ကိုမှတစ်ဆင့်ကိုယ်တိုင် ပြုလုပ်သော ID ကိုတိုက်ရိုက်ဖတ်ရန်တိကျသော ID ကိုဖတ်ရန်တိကျနိုင်သည်။ PreProcessed Statement ၏ $ Insert_id ၏ပိုင်ဆိုင်မှုကို အသုံးပြု. လက်ရှိကြေငြာချက်မှသက်ရောက်မှုရှိသော Insert ID ကိုရရှိရန်သေချာစေနိုင်သည်။
MySQLI_STMT :: $ Insert_id သည် PHP 8.1 နှင့်နောက်ပိုင်းဗားရှင်းများတွင်ထည့်သွင်းထားသော attribute အသစ်တစ်ခုဖြစ်သည်။ ၎င်းကိုအထူးပြုလုပ်ထားသောထုတ်ပြန်ချက်များကိုအကောင်အထည်ဖော်ပြီးနောက် Self-incourment ID ကိုရယူရန်အထူးအသုံးပြုသည်။ ၎င်းသည် ဒေါ်လာ MySQLI-> Insert_id ထက်ပိုမိုတိကျမှန်ကန်ပြီးလုံခြုံသည်။
အောက်ပါဥပမာသည် 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();
?>
ငွေပေးငွေယူတစ်ခုတွင်ထည့်သွင်းခြင်းလုပ်ငန်းတစ်ခုပြုလုပ်သောအခါပထမ ဦး ဆုံး MySQLI-> Indeport_transaction () စတင်ရန်အတွက်ပထမဆုံးခေါ်ဆိုပါ။ စစ်ဆင်ရေးပြီးစီးပြီးနောက် $ MySQLI-> commit () တင်သွင်းရန်ဖုန်းခေါ်ပါ။ အကယ်. ပျက်ကွက်ပါက MySQLI-> Rollback () ကို Rollback သို့ခေါ်ဆိုပါ။
SQL Injection ၏အန္တရာယ်ကိုရှောင်ရှားရန် instrocess ကိုသုံးရန် MySQLI_STMT PROPOCTSING ကြေငြာချက်ကိုသုံးပါ။
ထည့်သွင်းအောင်မြင်ပြီးနောက်၎င်းသည် Auto-Increment ID ကို $ stmt-> ထည့်သွင်းမှုများကို သေချာစေရန် Authert_ID မှတဆင့်ရယူပါ။
ဒေတာများ၏ရှေ့နောက်ညီညွတ်မှုနှင့်သမာဓိကိုသေချာစေရန်ခြွင်းချက်ကိုင်တွယ်စဉ်အတွင်းအရောင်းအ 0 ယ်များကိုပြန်လှိမ့်ချထားရမည်။
MySQLI_STMT :: $ insert_id ကို PHP 8.1 နှင့်အထက်တွင်သာရနိုင်သည်။ အကယ်. သင်သည် PHP ဗားရှင်းဟောင်းကိုအသုံးပြုနေပါက $ MySQLI-> Insert_id ကို အသုံးပြု. သင်စဉ်းစားနိုင်သည်။ သို့သော်တစ်ပြိုင်နက်တည်းကပြ issues နာများကိုဂရုပြုနိုင်သည်။