MySQLI :: Release_Savepoint သို့မ 0 င်မီကျွန်ုပ်တို့သည်အရောင်းအ 0 ယ်များနှင့် Rollback ယန္တရားကိုနားလည်ရန်လိုအပ်သည်။ ငွေပေးငွေယူသည်ဒေတာဘေ့စ်လုပ်ငန်းများစုဆောင်းခြင်းကိုအောင်မြင်စွာလုပ်ဆောင်ခြင်းသို့မဟုတ်ကျရှုံးခြင်းနှင့်ဖြည့်စွက်ခြင်း, အရောင်းအ 0 ယ်များသည်များသောအားဖြင့်အောက်ပါဝိသေသလက်ခဏာ 4 ခုပါ 0 င်သည်။
Utticity - ငွေပေးငွေယူတွင်စစ်ဆင်ရေးအားလုံးတွင်အပြည့်အဝကွပ်မျက်ခံရခြင်းသို့မဟုတ်အကုန်လုံးကွပ်မျက်ခံရခြင်းမရှိပါ။
ရှေ့နောက်ညီညွတ်မှု - ငွေပေးချေမှုမပြုမီနှင့်ပြီးနောက်ဒေတာဘေ့စ်သည်တသမတ်တည်းပြည်နယ်တွင်ရှိရမည်။
အထီးကျန်ခြင်း - ငွေပေးငွေယူတစ်ခု၏ကွပ်မျက်ခြင်းကိုအခြားအရောင်းအ 0 ယ်များကနှောင့်ယှက်ခြင်းမပြုသင့်ပါ။
ကြာရှည်ခံမှု - ငွေပေးငွေယူပြီးနောက်ဒေတာဘေ့စ်သို့ပြောင်းလဲမှုများသည်အမြဲတမ်းဖြစ်သည်။
ငွေပေးငွေယူကွပ်မျက်ခံရစဉ်အမှားအယွင်းတစ်ခုဖြစ်သောအခါ developer သည် Develback ယန္တရားကိုငွေပေးချေမှုမပြုမီ၎င်း၏ပြည်နယ်သို့ပြန်လည်ထူထောင်ရန် ROLLBACE ယန္တရားကိုသုံးနိုင်သည်။ Rollback SQL ကြေငြာချက်မှတဆင့်ဖြန့်ချိမှုကိုအကောင်အထည်ဖော်နိုင်သည်။
Savepoint တစ်ခုသည်ငွေပေးငွေယူတွင်အမှတ်အသားတစ်ခုတွင်အမှတ်အသားတစ်ခုဖြစ်သည်။ ငွေပေးငွေယူတွင်ပြ problems နာများရှိသည့်အခါ developer သည်ငွေပေးငွေယူတစ်ခုလုံးကိုလုံးဝပြန်လှိမ့်ချမည့်အစားအခှေကိုပြန်လှိမ့်နိုင်သည်။ ၎င်းသည်အမှားအယွင်းများကြောင့်ဖြစ်ရတဲ့ oddback အကွာအဝေးကိုလျှော့ချနိုင်ပြီးထိရောက်မှုကိုတိုးတက်စေနိုင်သည်။
ဥပမာအားဖြင့်, ငွေပေးငွေယူတစ်ခုအနေဖြင့်စစ်ဆင်ရေးတစ်ခုလိုအပ်သည်ဆိုပါစို့။ အချို့သောအဆင့်များတွင် developer သည်အောင်မြင်စွာလုပ်ဆောင်သွားမည့်လုပ်ငန်းများဆုံးရှုံးသွားမည့်အစားအချို့သောစစ်ဆင်ရေးများကိုပယ်ဖျက်ရန်အပြည့်အ 0 ကိုသုံးနိုင်သည်။
MySQLI :: Release_SavePoint function ကိုအရောင်းအ 0 ယ်တစ်ခုတွင်ဖန်တီးထားသောသိမ်းဆည်းမှုတစ်ခုကိုဖြည်ချရန်အသုံးပြုသည်။ Support Point မလိုအပ်တော့ကြောင်း developer ကအတည်ပြုသည့်အခါ function ကိုအခမဲ့ခေါ်ဆိုနိုင်ပြီးဒေတာဘေ့စ်တွင်မရှိတော့သည့်အရင်းအမြစ်များကိုသန့်ရှင်းရေးပြုလုပ်နိုင်သည်။ ဤ၏အားသာချက်မှာငွေပေးငွေယူတွင်သိမ်းဆည်းထားသည့်အချက်များကိုလျှော့ချရန်နှင့်ထိရောက်သောငွေပေးငွေယူစီမံခန့်ခွဲမှုများကိုသေချာစေရန်ကူညီပေးသည်။
<span><span>mysqli::</span><span><span class="hljs-title function_ invoke__">release_savepoint</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$savepoint</span></span><span>): </span><span><span class="hljs-keyword">bool</span></span><span>
</span></span>
$ Savepoint : ဖြန့်ချိမည့်အမြင့်ဆုံးနေရာ၏အမည်။
အောင်မြင်မှု - စစ်မှန်တဲ့ ပြန်လာပါ။
မအောင်မြင်ပါ - မှားယွင်းသောမှားယွင်းသော နှင့်အမှားအချက်အလက်များကို MySQLI_ERROR () မှတဆင့်ရနိုင်သည်။
MySQLI :: REAND_SAVEPINGPOINT ကို မည်သို့အသုံးပြုရမည်ကိုပြသသည့်ဥပမာတစ်ခုမှာ -
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// ဒေတာဘေ့စ် connection တစ်ခုဖန်တီးပါ</span></span><span>
</span><span><span class="hljs-variable">$mysqli</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title function_ invoke__">mysqli</span></span><span>(</span><span><span class="hljs-string">"localhost"</span></span><span>, </span><span><span class="hljs-string">"username"</span></span><span>, </span><span><span class="hljs-string">"password"</span></span><span>, </span><span><span class="hljs-string">"database"</span></span><span>);
</span><span><span class="hljs-comment">// ဆက်သွယ်မှုအောင်မြင်မှုရှိမရှိစစ်ဆေးပါ</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$mysqli</span></span><span>->connect_error) {
</span><span><span class="hljs-keyword">die</span></span><span>(</span><span><span class="hljs-string">"ဆက်သွယ်မှုမအောင်မြင်ပါ: "</span></span><span> . </span><span><span class="hljs-variable">$mysqli</span></span><span>->connect_error);
}
</span><span><span class="hljs-comment">// ငွေပေးငွေယူတစ်ခုစတင်ပါ</span></span><span>
</span><span><span class="hljs-variable">$mysqli</span></span><span>-></span><span><span class="hljs-title function_ invoke__">begin_transaction</span></span><span>();
</span><span><span class="hljs-keyword">try</span></span><span> {
</span><span><span class="hljs-comment">// Save Point ကိုဖန်တီးပါ</span></span><span>
</span><span><span class="hljs-variable">$mysqli</span></span><span>-></span><span><span class="hljs-title function_ invoke__">query</span></span><span>(</span><span><span class="hljs-string">"SAVEPOINT savepoint1"</span></span><span>);
</span><span><span class="hljs-comment">// အချို့သောဒေတာဘေ့စ်စစ်ဆင်ရေးလုပ်ဆောင်ပါ</span></span><span>
</span><span><span class="hljs-variable">$mysqli</span></span><span>-></span><span><span class="hljs-title function_ invoke__">query</span></span><span>(</span><span><span class="hljs-string">"INSERT INTO users (name, email) VALUES ('John Doe', '[email protected]')"</span></span><span>);
</span><span><span class="hljs-comment">// အခြားသိမ်းဆည်းရန်အချက်တစ်ခုကိုဖန်တီးပါ</span></span><span>
</span><span><span class="hljs-variable">$mysqli</span></span><span>-></span><span><span class="hljs-title function_ invoke__">query</span></span><span>(</span><span><span class="hljs-string">"SAVEPOINT savepoint2"</span></span><span>);
</span><span><span class="hljs-comment">// အခြားလုပ်ရပ်များလုပ်ဆောင်ပါ</span></span><span>
</span><span><span class="hljs-variable">$mysqli</span></span><span>-></span><span><span class="hljs-title function_ invoke__">query</span></span><span>(</span><span><span class="hljs-string">"INSERT INTO orders (user_id, product) VALUES (LAST_INSERT_ID(), 'Laptop')"</span></span><span>);
</span><span><span class="hljs-comment">// ဒီမှာအမှားတစ်ခုရှိတယ်ဆိုပါစို့,နောက်ကျောလှိမ့်ဖို့လိုအပ်ပါတယ်savepoint1</span></span><span>
</span><span><span class="hljs-comment">// သင်ပြန်လှိမ့်ချင်လျှင်savepoint1,အသုံးပြုနိုင်ROLLBACK TO SAVEPOINTအသေအချာပေြာဆိုချက်</span></span><span>
</span><span><span class="hljs-comment">// $mysqli->query("ROLLBACK TO SAVEPOINT savepoint1");</span></span><span>
</span><span><span class="hljs-comment">// အရာအားလုံးကောင်းစွာသွားလျှင်,Save Point ကိုလွှတ်ပေးပါ</span></span><span>
</span><span><span class="hljs-variable">$mysqli</span></span><span>-></span><span><span class="hljs-title function_ invoke__">release_savepoint</span></span><span>(</span><span><span class="hljs-string">"savepoint1"</span></span><span>);
</span><span><span class="hljs-comment">// တင်သွင်းမှုတင်သွင်း</span></span><span>
</span><span><span class="hljs-variable">$mysqli</span></span><span>-></span><span><span class="hljs-title function_ invoke__">commit</span></span><span>();
} </span><span><span class="hljs-keyword">catch</span></span><span> (</span><span><span class="hljs-built_in">Exception</span></span><span> </span><span><span class="hljs-variable">$e</span></span><span>) {
</span><span><span class="hljs-comment">// ချွင်းချက်များကိုဖမ်းခြင်းနှင့်ငွေပေးငွေယူတစ်ခုလုံးကိုပြန်လှိမ့်ပါ</span></span><span>
</span><span><span class="hljs-variable">$mysqli</span></span><span>-></span><span><span class="hljs-title function_ invoke__">rollback</span></span><span>();
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ငွေပေးငွေယူ Loverback: "</span></span><span> . </span><span><span class="hljs-variable">$e</span></span><span>-></span><span><span class="hljs-title function_ invoke__">getMessage</span></span><span>();
}
</span><span><span class="hljs-comment">// ဒေတာဘေ့စ် connection ကိုပိတ်ပါ</span></span><span>
</span><span><span class="hljs-variable">$mysqli</span></span><span>-></span><span><span class="hljs-title function_ invoke__">close</span></span><span>();
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
အထက်ပါကုဒ်၌:
SavePoint ကိုအသုံးပြုပြီးအပြည့်အဝကိုဖန်တီးပါ။
Savepoint1 ကို လွှတ်ရန် MySQLI :: REAND_SAVEPINGPOINT ကို သုံး. ဤသိမ်းဆည်းမှုမရှိတော့ကြောင်းညွှန်ပြသည်။
အကယ်. ငွေသွင်းငွေလွှဲမှုမအောင်မြင်ပါက Savepoint မှတဆင့် RollBack မှတစ်ဆင့်ငွေပေးချေမှုတစ်ခုလုံးကိုပြန်လည် ထုတ်ယူခြင်း သို့ပြန်သွားနိုင်သည်။
MySQLI :: unformation_saverpoint ၏အဓိကလုပ်ဆောင်ချက်သည်မလိုအပ်တော့ပါ။ ထို့အပြင်အရင်းအမြစ်များကိုအချိန်မီသန့်ရှင်းရေးလုပ်ရန်ဖြစ်သည်။ အထူးသဖြင့်ရှုပ်ထွေးသောအရောင်းအ 0 ယ်များကိုကိုင်တွယ်သည့်အခါသိမ်းဆည်းရန်အချက်များအားလုံးကိုသတ်မှတ်နိုင်သည်။ အကယ်. ဤသိမ်းဆည်းထားသည့်အချက်များကိုမဖြန့်ဖြူးပါကသူတို့သည်စနစ်အရင်းအမြစ်များကို ဆက်လက်. သိမ်းပိုက်ပြီးဒေတာဘေ့စ်၏စွမ်းဆောင်ရည်ကိုအကျိုးသက်ရောက်လိမ့်မည်။ ထို့ကြောင့် MySQLI :: REAND_SAVEPINGPOINT ကို သုံး. မလိုအပ်တော့မည့်သိမ်းဆည်းရန်နေရာများကိုဖြန့်ချိရန်အရင်းအမြစ်များကိုစီမံရန်ကောင်းသောနည်းလမ်းဖြစ်သည်။
Save အရင်းအမြစ်များကို သိမ်းရန်အရင်းအမြစ်များကိုစွန့်ပစ်ခြင်းမရှိတော့ပါ။
စွမ်းဆောင်ရည်တိုးတက်လာခြင်း
ပိုမိုကောင်းမွန်သောထိန်းသိမ်းထားမှု - ရှည်လျားသောအရောင်းအ 0 ယ်များတွင်ငွေပေးငွေယူစီမံခန့်ခွဲမှုသည်မလိုအပ်တော့ပါ။
MySQLI :: Dound_SavePoint -point function သည်ဒေတာဘေ့စ်အရောင်းအ 0 ယ်များ၏ Rollback ယန္တရားတွင်အရေးပါသောအခန်းကဏ် plays မှပါ 0 င်သည်။ ၎င်းသည်အရင်းအမြစ်အသုံးပြုမှုကိုလျော့နည်းစေပြီးမလိုအပ်တော့မည့်အချက်များကိုကယ်တင်ရန်ကူညီခြင်းဖြင့်ငွေပေးငွေယူထိရောက်မှုကိုပိုမိုကောင်းမွန်စေသည်။ ရှုပ်ထွေးသောဒေတာဘေ့စ်စစ်ဆင်ရေးများနှင့်ဆက်ဆံရာတွင်သိမ်းဆည်းထားသည့်သိမ်းဆည်းမှုနှင့် ဖြန့်ချိရေးအတွက် ဆင်ခြင်တုံတရားအသုံးပြုခြင်းသည်ကုဒ်၏ဖတ်နိုင်မှု, ထိန်းသိမ်းခြင်းနှင့်စွမ်းဆောင်ရည်ကိုသိသိသာသာတိုးတက်စေနိုင်သည်။