PHP, PDO (PHP ဒေတာအရာဝတ်ထု) တွင်ဒေတာဘေ့စ်များကို 0 င်ရောက်ရန်ပေါ့ပါး။ စိတ်တဇဒေတာဘေ့စ် Access layer ဖြစ်သည်။ PDO သည် API ကိုတသမတ်တည်းသော API ကိုတသမတ်တည်းပေးသည့်အရာတစ်ခု၏တသမတ်တည်း API ကိုထောက်ပံ့ပေးနေသည်။ အရောင်းအ 0 ယ်များသည်စစ်ဆင်ရေးတစ်ခုသို့ရည်ညွှန်းသည်။
PDO :: IntrainactionAractacity () သည် လက်ရှိဒေတာဘေ့စ်ဆက်သွယ်မှုသည်ငွေပေးငွေယူ၌တည်ရှိသည်ကိုစစ်ဆေးသော PDO အတန်းအစား၏နည်းလမ်းဖြစ်သည်။ ၎င်းသည်ငွေပေးငွေယူအတွက်ပြည်နယ်သတင်းအချက်အလက်များကိုထောက်ပံ့သော်လည်းငွေပေးငွေယူ၏အစနှင့်အဆုံးကိုတိုက်ရိုက်မထိန်းချုပ်နိုင်ပါ။ ဤဆောင်းပါးသည် PDO :: Intransactionactacing () ၏အခန်းကဏ် on ကိုအသေးစိတ်ဆွေးနွေးရန်နှင့်ငွေပေးငွေယူစီမံခန့်ခွဲမှုအတွက် PDO ကိုမည်သို့အသုံးပြုရမည်ကိုမိတ်ဆက်ပေးမည်ဖြစ်သည်။
PDO :: Intrainsaction () Intransaction () နည်းလမ်းသည်လက်ရှိဒေတာဘေ့စ်ဆက်သွယ်မှုသည်အရောင်းအ 0 ယ်များပြုလုပ်နေခြင်းရှိမရှိ boolean value ကိုပြန်ပို့သည်။ အကယ်. အရောင်းအ 0 ယ်စတင်ခဲ့လျှင်အထူးသဖြင့် Intransaction () ပြန်လည်ထူထောင် ခြင်း မဟုတ်သော်လည်းမကျူးလွန်သောသို့မဟုတ်ပြန် လှိမ့်ခြင်း မရှိသေးပါ။
အသုံးပြုမှုဥပမာ:
<span><span><span class="hljs-meta"><?php</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">'root'</span></span><span>, </span><span><span class="hljs-string">''</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">$pdo</span></span><span>-></span><span><span class="hljs-title function_ invoke__">inTransaction</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">else</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-meta">?></span></span><span>
</span></span>
ဤဥပမာတွင်ငွေပေးချေမှုမရှိသေးပါကအဘယ်သူမျှမငွေပေးချေမှုသည်ယခုအခါ output ကို "အဘယ်သူမျှမငွေပေးငွေယူ၌တိုးတက်မှု၌တည်ရှိ၏" ဖြစ်နိုင်သည်။ ငွေပေးငွေယူစတင်ပါက output သည် "အရောင်းအ 0 ယ်တွင်ငွေပေးချေမှု" ဖြစ်လိမ့်မည်။
၎င်းကို IntranactionAnd () သည်ငွေပေးငွေယူသည်ဖြစ်စေသင်သာပြောပြသင့်ကြောင်းသတိပြုသင့်သည်။ သို့သော်၎င်းသည်ငွေပေးငွေယူကိုစတင်ရန်သို့မဟုတ်အဆုံးသတ်လိမ့်မည်မဟုတ်ပါ။ ၎င်းသည်ပြည်နယ်စုံစမ်းမှုနည်းလမ်းတစ်ခုသာဖြစ်သည်။
ငွေပေးငွေယူ၏အစနှင့်အဆုံးကို beginransacingaction () , commit () နှင့် Rollback () နည်းလမ်းများကထိန်းချုပ်ထားသည်။
begintransactacingaction () - ငွေပေးငွေယူအသစ်တစ်ခုကိုစတင်ပါ။
ကျူးလွန် () : လက်ရှိငွေပေးငွေယူကိုကျူးလွန်ပါ။
RollBack () : လက်ရှိငွေပေးငွေယူကို Rollback ။
ငွေပေးငွေယူအသုံးပြုမှုဥပမာ -
<span><span><span class="hljs-meta"><?php</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">'root'</span></span><span>, </span><span><span class="hljs-string">''</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-keyword">try</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__">exec</span></span><span>(</span><span><span class="hljs-string">"INSERT INTO users (name, email) VALUES ('John Doe', 'john@example.com')"</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>
ဤဥပမာတွင် beginnatransaction () သည် ငွေပေးငွေယူတစ်ခုစတင်သည်။ အကယ်. ကွပ်မျက်မှုတွင်အမှားအယွင်းမရှိပါကငွေပေးငွေယူသည် ကျူးလွန်မှု မှတစ်ဆင့်တင်သွင်းသည်။ အကယ်. ချွင်းချက်တစ်ခုအနေဖြင့်ငွေပေးငွေယူတွင်ပါ 0 င်ပါက database သည်တသမတ်တည်းရှိနေကြောင်းသေချာစေရန် Rollback () မှတစ်ဆင့်ငွေလွှဲခြင်း () ကိုထပ်ထုတ်ပေးသည်။
PDO :: Intrainsactionacation () သည် ငွေပေးငွေယူအခြေအနေကိုရှာဖွေတွေ့ရှိနိုင်သော်လည်းငွေပေးငွေယူပြည်နယ်၏ချမှတ်ခြင်းသို့မဟုတ်ခြွင်းချက်အခြေအနေများအတွက်အသုံးပြုလေ့ရှိသည်။ ဥပမာအားဖြင့်ငွေပေးချေမှုတစ်ခုစတင်ရန်, ငွေပေးငွေယူမစဘဲကျူးလွန်ခြင်းသို့မဟုတ် operations များကိုရှောင်ရှားခြင်းရှိမရှိစစ်ဆေးပါ။
<span><span><span class="hljs-meta"><?php</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">'root'</span></span><span>, </span><span><span class="hljs-string">''</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-keyword">try</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__">exec</span></span><span>(</span><span><span class="hljs-string">"INSERT INTO users (name, email) VALUES ('Jane Doe', 'jane@example.com')"</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">$pdo</span></span><span>-></span><span><span class="hljs-title function_ invoke__">inTransaction</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">else</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-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$pdo</span></span><span>-></span><span><span class="hljs-title function_ invoke__">inTransaction</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 :: Intransaction () သည် ငွေပေးငွေယူတိုးတက်မှုရှိ, မရှိနှင့်ငွေပေးငွေယူ၏အစနှင့်အဆုံးကိုမထိန်းချုပ်နိုင်, ၎င်းသည်ငွေပေးငွေယူကိုစတင်ရန်သို့မဟုတ်မကျူးလွန်နိုင်ပါကငွေပေးငွေယူအခြေအနေကိုသာပြောပြနိုင်သည်။
အရောင်းအ 0 ယ်များသည် developer များကထိန်းချုပ်ထားသည့်လုပ်ငန်းစဉ်ဖြစ်စဉ်တစ်ခုဖြစ်သောလုပ်ငန်းစဉ်ကိုအရန်စနစ်ကိုစနစ်တကျစီမံခန့်ခွဲရန်အရန်ကိရိယာတစ်ခုအဖြစ်သာအသုံးပြုသည်။ ၎င်းသည်ငွေပေးငွေယူထိန်းချုပ်မှုနည်းလမ်းများကိုအစားထိုးရန်နည်းလမ်းများအစားထိုး လို့ မရပါဘူး ။
PDO :: Intransaction () သည် ငွေပေးငွေယူစီမံခန့်ခွဲမှုတွင်အထောက်အမဂ္ဂကပါ 0 င်သည်။ ၎င်းကိုငွေပေးငွေယူ၏လက်ရှိအခြေအနေကိုစစ်ဆေးရန်၎င်းကိုအသုံးပြုနိုင်သော်လည်းငွေပေးငွေယူ၏အစသို့မဟုတ်အဆုံးကိုတိုက်ရိုက်မထိန်းချုပ်နိုင်ပါ။ အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်ငွေသွင်းငွေထုတ်၏ဘဝသံသရာကိုစီမံခန့်ခွဲရန် BeginTransaction () နှင့် Rollback () နှင့် Rollback အပေါ်ကျွန်ုပ်တို့မှီခိုသင့်သည်။ နှင့် PDO :: Intransaction () သည် ငွေပေးချေမှုလုပ်ငန်းများ၏မှန်ကန်မှုကိုသေချာစေရန်နှင့်အရောင်းအ 0 ယ်များမရှိဘဲပြန်လည်လုပ်ဆောင်ခြင်းကိုရှောင်ရှားရန်ကျွန်ုပ်တို့အားကူညီနိုင်သည်။
PDE မှပေးသောငွေပေးငွေယူနည်းလမ်းများနှင့်အခြေအနေစစ်ဆေးမှုများကိုမှန်ကန်စွာအသုံးပြုခြင်းသည်ဒေတာလုပ်ဆောင်မှုများ,
သက်ဆိုင်သောတက်(ဂ်)များ:
PDO