ဒေတာဘေ့စ်လုပ်ငန်းများ၌ငွေပေးငွေယူစီမံခန့်ခွဲမှုသည်အလွန်အရေးကြီးသောအယူအဆတစ်ခုဖြစ်သည်။ PHP တွင် PDO (PHP Data Obserts) ကိုဒေတာ ဘေ့စ ် နှင့် အပြန်အလှန်ဆက်သွယ်နိုင်ရန်အတွက်သုံးစွဲနိုင်သည်။ ဤဆောင်းပါးသည်ငွေပေးချေမှုလည်ပတ်မှုကိုအကောင်အထည်ဖော်ရန် Rollback နှင့်ပေါင်းစပ်ပြီး PODATRANSATESATE ကိုမည်သို့အသုံးပြုရမည်ကိုအသေးစိတ်ဖော်ပြထားသည်။
ငွေပေးငွေယူသည်အောင်မြင်မှုသို့မဟုတ်ကျရှုံးခြင်းကိုဖြစ်စေစစ်ဆင်ရေးတစ်ခုစုဆောင်းခြင်းကိုရည်ညွှန်းသည်။ အရောင်းအ 0 ယ်များသည်ဒေတာဘေ့စ်လုပ်ငန်းများ၏ရှေ့နောက်ညီညွတ်မှုနှင့်သမာဓိရှိမှုကိုသေချာစေသည်။ ဒေတာဘေ့စ်စနစ်တစ်ခုတွင်အရက်ဘင်၏အခြေခံလက္ခဏာများကိုအက်စစ်ဖြင့်ဖော်ပြနိုင်သည်။
Utticity : ငွေပေးငွေယူတစ်ခုရှိစစ်ဆင်ရေးအားလုံးသည်ပြီးစီးခြင်းသို့မဟုတ်မလုပ်ဆောင်နိုင်ပါ။
ရှေ့နောက်ညီညွတ်မှု - ငွေပေးငွေယူတစ်ခု၏ကွပ်မျက်မှုသည်ဒေတာဘေ့စ်ကိုတသမတ်တည်းပြည်နယ်တစ်ခုမှအခြားတစ်ခုသို့ကူးပြောင်းခြင်းကိုဖြစ်စေလိမ့်မည်။
အထီးကျန်ခြင်း - အရောင်းအ 0 ယ်မျိုးစုံသည်တစ်ပြိုင်နက်တည်းလုပ်ဆောင်သောအခါငွေပေးငွေယူတစ်ခု၏ကွပ်မျက်ခြင်းကိုအခြားအရောင်းအ 0 ယ်များက 0 င်ရောက်စွက်ဖက်ခြင်းမပြုသင့်ပါ။
ကြာရှည်ခံမှု - ငွေပေးငွေယူသည်နှင့်တစ်ပြိုင်နက် database သို့ပြောင်းလဲခြင်းသည်အမြဲတမ်းကယ်တင်ခြင်းသို့ရောက်လိမ့်မည်။
PDO တွင်အရောင်းအ 0 ယ်လုပ်ငန်းများတွင်အောက်ပါတို့ပါ 0 င်သည်။
begintransaction () : ငွေပေးငွေယူကိုစတင်ပါ။
ကျူးလွန် () : ငွေပေးငွေယူ။
RollBack () : Rollback အရောင်းအ 0 ယ်များ။
ယေဘုယျအားဖြင့်ဒေတာဘေ့စ်စစ်ဆင်ရေးများအတွင်း, တစ်ခြေလှမ်းအမှားများပေါ်ပေါက်လာပါကငွေပေးချေမှုကိုပြန်လည်ရယူရန်နှင့်ယခင်စစ်ဆင်ရေးများကိုပြန်လည်ရုပ်သိမ်းရန် Rollback () နည်းလမ်းကိုသုံးနိုင်သည်။
မှတ်တမ်းများကိုထည့်သွင်းခြင်း, မှတ်တမ်းများကိုမွမ်းမံခြင်းစသည့်ဒေတာဘေ့စ်လုပ်ငန်းမျိုးစုံပြုလုပ်ရန်လိုအပ်သည်ဆိုပါစို့။ စစ်ဆင်ရေးတစ်ခုမှမအောင်မြင်ပါက, ဤအချိန်တွင်ကျွန်ုပ်တို့သည် beginransaction () နှင့် Rollback () နည်းလမ်းများကိုသုံးနိုင်သည်။
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-keyword">try</span></span><span> {
</span><span><span class="hljs-comment">// ဖန်တီးPDOဆက်</span></span><span>
</span><span><span class="hljs-variable">$pdo</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title function_ invoke__">PDO</span></span><span>(</span><span><span class="hljs-string">'mysql:host=localhost;dbname=testdb'</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-comment">// ချွင်းချက်မှအမှား mode ကိုသတ်မှတ်ပါ</span></span><span>
</span><span><span class="hljs-variable">$pdo</span></span><span>-></span><span><span class="hljs-title function_ invoke__">setAttribute</span></span><span>(PDO::</span><span><span class="hljs-variable constant_">ATTR_ERRMODE</span></span><span>, PDO::</span><span><span class="hljs-variable constant_">ERRMODE_EXCEPTION</span></span><span>);
</span><span><span class="hljs-comment">// ငွေပေးငွေယူတစ်ခုစတင်ပါ</span></span><span>
</span><span><span class="hljs-variable">$pdo</span></span><span>-></span><span><span class="hljs-title function_ invoke__">beginTransaction</span></span><span>();
</span><span><span class="hljs-comment">// ပထမတစ်ခု executeSQLခဲှစိတ်ကုသ</span></span><span>
</span><span><span class="hljs-variable">$sql1</span></span><span> = </span><span><span class="hljs-string">"INSERT INTO users (username, email) VALUES ('john_doe', '[email protected]')"</span></span><span>;
</span><span><span class="hljs-variable">$pdo</span></span><span>-></span><span><span class="hljs-title function_ invoke__">exec</span></span><span>(</span><span><span class="hljs-variable">$sql1</span></span><span>);
</span><span><span class="hljs-comment">// ဒုတိယ executeSQLခဲှစိတ်ကုသ</span></span><span>
</span><span><span class="hljs-variable">$sql2</span></span><span> = </span><span><span class="hljs-string">"UPDATE accounts SET balance = balance - 100 WHERE username = 'john_doe'"</span></span><span>;
</span><span><span class="hljs-variable">$pdo</span></span><span>-></span><span><span class="hljs-title function_ invoke__">exec</span></span><span>(</span><span><span class="hljs-variable">$sql2</span></span><span>);
</span><span><span class="hljs-comment">// အရာအားလုံးအဆင်ပြေလျှင်,တင်သွင်းမှုတင်သွင်း</span></span><span>
</span><span><span class="hljs-variable">$pdo</span></span><span>-></span><span><span class="hljs-title function_ invoke__">commit</span></span><span>();
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ငွေပေးငွေယူတင်သွင်းမှုအောင်မြင်သော!"</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">$pdo</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-meta">?></span></span><span>
</span></span>PDO ဆက်သွယ်မှုကိုတည်ဆောက်ပါ ။ ပထမ ဦး စွာ MySQL ဒေတာဘေ့စ်ကို PDE မှတစ်ဆင့် MySQL ဒေတာဘေ့စ်နှင့်ချိတ်ဆက်ပြီးအမှားတစ်ခုဖြစ်ပေါ်သည့်အခါခြွင်းချက်တစ်ခုသို့ချွင်းချက်ချနိုင်ရန်အတွက်အမှားအယွင်းများ ကိုထည့်ပါ။
ငွေပေးငွေယူတစ်ခုစတင်ပါ - $ pdo-> beginransaction () ကို ခေါ်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်ငွေပေးငွေယူတစ်ခုစတင်ရန် PDO ကိုကျွန်ုပ်တို့ပြောသည်။ ဤအချိန်တွင်ဒေတာဘေ့စ်လုပ်ငန်းများအားလုံးသည်ငွေပေးငွေယူစီမံခန့်ခွဲမှုအောက်တွင်ရှိသည်။ အကယ်. မည်သည့်စစ်ဆင်ရေးမအောင်မြင်ပါကအခြားစစ်ဆင်ရေးများကိုတင်သွင်းမည်မဟုတ်ပါ။
SQL စစ်ဆင်ရေးကိုလုပ်ဆောင်ပါ ။
ပထမ SQL လည်ပတ်မှုသည်အသုံးပြုသူမှတ်တမ်းကိုထည့်သွင်းရန်ဖြစ်သည်။
ဒုတိယ SQL လည်ပတ်မှုသည်အသုံးပြုသူအကောင့်၏လက်ကျန်ငွေကိုမွမ်းမံရန်ဖြစ်သည်။
ငွေပေးချေမှုကိုကျူးလွန်ပါက စစ်ဆင်ရေးအားလုံးအောင်မြင်ပါကလုပ်ငန်းများကိုဒေတာဘေ့စ်သို့အမြဲတမ်းသိမ်းဆည်းရန် $ pdo- ကျူးလွန် () () () () () () () () () ()) ကိုခေါ်ဆိုခြင်းဖြင့်ငွေပေးချေမှုကိုတင်သွင်းပါ ။
Relloback ငွေပေးငွေယူ - ကွပ်မျက်မှုတွင် "ဒုတိယ SQL စစ်ဆင်ရေးပျက်ကွက်ခြင်းကဲ့သို့) ခြွင်းချက်တစ်ခုဖြစ်ပါက Catch block ရှိကုဒ်ကိုအစပျိုးပေးလိမ့်မည်။
အရောင်းအ 0 ယ်များအဏုမြူမှု - BeginTransaction () ကိုအသုံးပြုပြီးနောက်ဒေတာဘေ့စ်လုပ်ငန်းများကိုတစ်ခုလုံးအဖြစ်သတ်မှတ်လိမ့်မည်။ အမှားတစ်ခုဖြစ်ပါက Rollback () သည် ငွေပေးငွေယူတစ်ခုလုံးကိုဒေတာရှေ့နောက်ညီညွတ်မှုရှိစေရန်ပြန်လည်ရုပ်သိမ်းနိုင်သည်။
ခြွင်းချက်ကိုင်တွယ်ခြင်း - စစ်ဆင်ရေးပျက်ကွက်သည့်အချိန်တွင်အရောင်းအ 0 ယ ် များကိုအချိန်မီပြန်လှိမ့်နိုင်အောင်ချွင်းချက်များဖမ်းယူနိုင်ရန်အတွက်ချွင်းချက်များကိုဖမ်းရန်သေချာပါစေ။
Multiple Definition operations : ငွေပေးချေမှုတစ်ခုတွင်စစ်ဆင်ရေးမျိုးစုံလုပ်ဆောင်သည့်အခါလုပ်ငန်းများအားလုံးသည်ငွေပေးငွေယူကိုမကျူးလွန်မီကာလပတ်လုံးအမှားအယွင်းများမပြုလုပ်နိုင်ပါ။
PDO ၏ GAMATRANSANSANESANSANSENDATESTRANSANSANTESTRANTRANSANSATES () Roundback () နည်းလမ်းများမှတဆင့် PHP တွင်ငွေပေးချေမှုကိုထိရောက်စွာစီမံခန့်ခွဲနိုင်သည်။ ဤနည်းလမ်းသည်အခြေအနေမျိုးတွင်ဒေတာဘေ့စ်လုပ်ငန်းမျိုးစုံလိုအပ်သည့်နေရာများတွင်အလွန်အသုံးဝင်သည်, ငွေပေးငွေယူ Rollback သည်ဒေတာရှေ့နောက်မညီမှုများမှရှောင်ရှားနိုင်သည်။
သက်ဆိုင်သောတက်(ဂ်)များ:
PDO