လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PDO :: Introsaction သည်ငွေပေးငွေယူ၏အစနှင့်အဆုံးအချိန်ကိုထိန်းချုပ်နိုင်ပါသလား။ ဘယ်လိုမှန်ကန်စွာသုံးရမလဲ။

PDO :: Introsaction သည်ငွေပေးငွေယူ၏အစနှင့်အဆုံးအချိန်ကိုထိန်းချုပ်နိုင်ပါသလား။ ဘယ်လိုမှန်ကန်စွာသုံးရမလဲ။

M66 2025-06-30

PHP, PDO (PHP ဒေတာအရာဝတ်ထု) တွင်ဒေတာဘေ့စ်များကို 0 င်ရောက်ရန်ပေါ့ပါး။ စိတ်တဇဒေတာဘေ့စ် Access layer ဖြစ်သည်။ PDO သည် API ကိုတသမတ်တည်းသော API ကိုတသမတ်တည်းပေးသည့်အရာတစ်ခု၏တသမတ်တည်း API ကိုထောက်ပံ့ပေးနေသည်။ အရောင်းအ 0 ယ်များသည်စစ်ဆင်ရေးတစ်ခုသို့ရည်ညွှန်းသည်။

PDO :: IntrainactionAractacity () သည် လက်ရှိဒေတာဘေ့စ်ဆက်သွယ်မှုသည်ငွေပေးငွေယူ၌တည်ရှိသည်ကိုစစ်ဆေးသော PDO အတန်းအစား၏နည်းလမ်းဖြစ်သည်။ ၎င်းသည်ငွေပေးငွေယူအတွက်ပြည်နယ်သတင်းအချက်အလက်များကိုထောက်ပံ့သော်လည်းငွေပေးငွေယူ၏အစနှင့်အဆုံးကိုတိုက်ရိုက်မထိန်းချုပ်နိုင်ပါ။ ဤဆောင်းပါးသည် PDO :: Intransactionactacing () ၏အခန်းကဏ် on ကိုအသေးစိတ်ဆွေးနွေးရန်နှင့်ငွေပေးငွေယူစီမံခန့်ခွဲမှုအတွက် PDO ကိုမည်သို့အသုံးပြုရမည်ကိုမိတ်ဆက်ပေးမည်ဖြစ်သည်။

1 ။ PDO :: Intrayaction () ၏အခန်းကဏ်။

PDO :: Intrainsaction () Intransaction () နည်းလမ်းသည်လက်ရှိဒေတာဘေ့စ်ဆက်သွယ်မှုသည်အရောင်းအ 0 ယ်များပြုလုပ်နေခြင်းရှိမရှိ boolean value ကိုပြန်ပို့သည်။ အကယ်. အရောင်းအ 0 ယ်စတင်ခဲ့လျှင်အထူးသဖြင့် Intransaction () ပြန်လည်ထူထောင် ခြင်း မဟုတ်သော်လည်းမကျူးလွန်သောသို့မဟုတ်ပြန် လှိမ့်ခြင်း မရှိသေးပါ။

အသုံးပြုမှုဥပမာ:

 <span><span><span class="hljs-meta">&lt;?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>-&gt;</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">?&gt;</span></span><span>
</span></span>

ဤဥပမာတွင်ငွေပေးချေမှုမရှိသေးပါကအဘယ်သူမျှမငွေပေးချေမှုသည်ယခုအခါ output ကို "အဘယ်သူမျှမငွေပေးငွေယူ၌တိုးတက်မှု၌တည်ရှိ၏" ဖြစ်နိုင်သည်။ ငွေပေးငွေယူစတင်ပါက output သည် "အရောင်းအ 0 ယ်တွင်ငွေပေးချေမှု" ဖြစ်လိမ့်မည်။

၎င်းကို IntranactionAnd () သည်ငွေပေးငွေယူသည်ဖြစ်စေသင်သာပြောပြသင့်ကြောင်းသတိပြုသင့်သည်။ သို့သော်၎င်းသည်ငွေပေးငွေယူကိုစတင်ရန်သို့မဟုတ်အဆုံးသတ်လိမ့်မည်မဟုတ်ပါ။ ၎င်းသည်ပြည်နယ်စုံစမ်းမှုနည်းလမ်းတစ်ခုသာဖြစ်သည်။

2 ။ စတင်ရန်နှင့်အရောင်းအ 0 ယ်များစတင်ရန်

ငွေပေးငွေယူ၏အစနှင့်အဆုံးကို beginransacingaction () , commit () နှင့် Rollback () နည်းလမ်းများကထိန်းချုပ်ထားသည်။

  • begintransactacingaction () - ငွေပေးငွေယူအသစ်တစ်ခုကိုစတင်ပါ။

  • ကျူးလွန် () : လက်ရှိငွေပေးငွေယူကိုကျူးလွန်ပါ။

  • RollBack () : လက်ရှိငွေပေးငွေယူကို Rollback ။

ငွေပေးငွေယူအသုံးပြုမှုဥပမာ -

 <span><span><span class="hljs-meta">&lt;?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>-&gt;</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>-&gt;</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>-&gt;</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>-&gt;</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>-&gt;</span><span><span class="hljs-title function_ invoke__">getMessage</span></span><span>();
}
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

ဤဥပမာတွင် beginnatransaction () သည် ငွေပေးငွေယူတစ်ခုစတင်သည်။ အကယ်. ကွပ်မျက်မှုတွင်အမှားအယွင်းမရှိပါကငွေပေးငွေယူသည် ကျူးလွန်မှု မှတစ်ဆင့်တင်သွင်းသည်။ အကယ်. ချွင်းချက်တစ်ခုအနေဖြင့်ငွေပေးငွေယူတွင်ပါ 0 င်ပါက database သည်တသမတ်တည်းရှိနေကြောင်းသေချာစေရန် Rollback () မှတစ်ဆင့်ငွေလွှဲခြင်း () ကိုထပ်ထုတ်ပေးသည်။

3 ။ PDO :: Intransaction ကို မှန်ကန်စွာအသုံးပြုနည်း

PDO :: Intrainsactionacation () သည် ငွေပေးငွေယူအခြေအနေကိုရှာဖွေတွေ့ရှိနိုင်သော်လည်းငွေပေးငွေယူပြည်နယ်၏ချမှတ်ခြင်းသို့မဟုတ်ခြွင်းချက်အခြေအနေများအတွက်အသုံးပြုလေ့ရှိသည်။ ဥပမာအားဖြင့်ငွေပေးချေမှုတစ်ခုစတင်ရန်, ငွေပေးငွေယူမစဘဲကျူးလွန်ခြင်းသို့မဟုတ် operations များကိုရှောင်ရှားခြင်းရှိမရှိစစ်ဆေးပါ။

ဥပမာ - တင်ပြချက်မျိုးစုံသို့မဟုတ် rollbacks ကိုရှောင်ပါ

 <span><span><span class="hljs-meta">&lt;?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>-&gt;</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>-&gt;</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>-&gt;</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>-&gt;</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>-&gt;</span><span><span class="hljs-title function_ invoke__">inTransaction</span></span><span>()) {
        </span><span><span class="hljs-variable">$pdo</span></span><span>-&gt;</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>-&gt;</span><span><span class="hljs-title function_ invoke__">getMessage</span></span><span>();
}
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

ဤဥပမာတွင် ငွေပေး ချေမှုစတင်ခဲ့ခြင်းရှိ,

4 ။ PDO :: Intrayaction () ၏ကန့်သတ်ချက်များ

  • PDO :: Intransaction () သည် ငွေပေးငွေယူတိုးတက်မှုရှိ, မရှိနှင့်ငွေပေးငွေယူ၏အစနှင့်အဆုံးကိုမထိန်းချုပ်နိုင်, ၎င်းသည်ငွေပေးငွေယူကိုစတင်ရန်သို့မဟုတ်မကျူးလွန်နိုင်ပါကငွေပေးငွေယူအခြေအနေကိုသာပြောပြနိုင်သည်။

  • အရောင်းအ 0 ယ်များသည် developer များကထိန်းချုပ်ထားသည့်လုပ်ငန်းစဉ်ဖြစ်စဉ်တစ်ခုဖြစ်သောလုပ်ငန်းစဉ်ကိုအရန်စနစ်ကိုစနစ်တကျစီမံခန့်ခွဲရန်အရန်ကိရိယာတစ်ခုအဖြစ်သာအသုံးပြုသည်။ ၎င်းသည်ငွေပေးငွေယူထိန်းချုပ်မှုနည်းလမ်းများကိုအစားထိုးရန်နည်းလမ်းများအစားထိုး လို့ မရပါဘူး

5 ။ နိဂုံးချုပ်

PDO :: Intransaction () သည် ငွေပေးငွေယူစီမံခန့်ခွဲမှုတွင်အထောက်အမဂ္ဂကပါ 0 င်သည်။ ၎င်းကိုငွေပေးငွေယူ၏လက်ရှိအခြေအနေကိုစစ်ဆေးရန်၎င်းကိုအသုံးပြုနိုင်သော်လည်းငွေပေးငွေယူ၏အစသို့မဟုတ်အဆုံးကိုတိုက်ရိုက်မထိန်းချုပ်နိုင်ပါ။ အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်ငွေသွင်းငွေထုတ်၏ဘဝသံသရာကိုစီမံခန့်ခွဲရန် BeginTransaction () နှင့် Rollback () နှင့် Rollback အပေါ်ကျွန်ုပ်တို့မှီခိုသင့်သည်။ နှင့် PDO :: Intransaction () သည် ငွေပေးချေမှုလုပ်ငန်းများ၏မှန်ကန်မှုကိုသေချာစေရန်နှင့်အရောင်းအ 0 ယ်များမရှိဘဲပြန်လည်လုပ်ဆောင်ခြင်းကိုရှောင်ရှားရန်ကျွန်ုပ်တို့အားကူညီနိုင်သည်။

PDE မှပေးသောငွေပေးငွေယူနည်းလမ်းများနှင့်အခြေအနေစစ်ဆေးမှုများကိုမှန်ကန်စွာအသုံးပြုခြင်းသည်ဒေတာလုပ်ဆောင်မှုများ,

  • သက်ဆိုင်သောတက်(ဂ်)များ:

    PDO