လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> MySQLI ::: DATABASE ငွေပေးငွေယူထိန်းချုပ်မှုကိုအကောင်အထည်ဖော်ရန် MySQLI :: Start_transaction ကိုမည်သို့အသုံးပြုရမည်နည်း။

MySQLI ::: DATABASE ငွေပေးငွေယူထိန်းချုပ်မှုကိုအကောင်အထည်ဖော်ရန် MySQLI :: Start_transaction ကိုမည်သို့အသုံးပြုရမည်နည်း။

gitbox 2025-08-21

<span><span><span class="hljs-meta"><?php</span></span><span> </span><span><span class="hljs-comment">// 本段是与文章内容无关的部分</span></span><span> </span><span><span class="hljs-comment">// 例如可以是作者信息、版权声明或加载某些配置</span></span><span> </span><span><span class="hljs-title function_ invoke__">date_default_timezone_set</span></span><span>(</span><span><span class="hljs-string">'Asia/Shanghai'</span></span><span>); </span><span><span class="hljs-variable">$author</span></span><span> = </span><span><span class="hljs-string">"数据库事务研究小组"</span></span><span>; </span><span><span class="hljs-variable">$publish_date</span></span><span> = </span><span><span class="hljs-title function_ invoke__">date</span></span><span>(</span><span><span class="hljs-string">'Y-m-d'</span></span><span>); </span><span><span class="hljs-meta">?></span></span><span> <hr> <h1>如何正确使用 mysqli::</span><span><span class="hljs-variable constant_">begin_transaction</span></span><span> 来实现数据库事务控制?</h1> <p>在使用 MySQL 数据库进行开发时,事务控制是保障数据一致性与完整性的重要手段。PHP 的 <code>mysqli

  • : MySQLI_TRANS_START_READ_READ_READ_READ_READ_READ_READ_READ_READ_READ_RAD_RAD_RAD_RAD_ROED_RAD_RAD_RAD_RAD_RAD_ROED_ROED_RAD_RADE
  • $ နာမည် : optional, ငွေပေးငွေယူအတွက်နာမည်တစ်ခုသတ်မှတ်ထားခြင်း (အဓိကအားဖြင့် XA အရောင်းအဝယ်သို့မဟုတ်အဆင့်မြင့်မြင်ကွင်းများတွင်အသုံးပြုသည်) ။

3 ။ အခြေခံဥပမာ
 
</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">'user'</span></span><span>, </span><span><span class="hljs-string">'password'</span></span><span>, </span><span><span class="hljs-string">'testdb'</span></span><span>);

</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$mysqli</span></span><span>->connect_errno) {
    </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-keyword">try</span></span><span> {
    </span><span><span class="hljs-comment">// အတိအလင်းအရောင်းအဝယ် enable</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-comment">// မျိုးစုံဆက်စပ်ပစ္စည်း execute SQL အသေအချာပေြာဆိုချက်</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">"UPDATE accounts SET balance = balance - 100 WHERE id = 1"</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">"UPDATE accounts SET balance = balance + 100 WHERE id = 2"</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">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">$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">"လွှဲပြောင်းမအောင်မြင်ပါ: "</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-variable">$mysqli</span></span><span>-></span><span><span class="hljs-title function_ invoke__">close</span></span><span>();

4 ။ မှတ်စုများ
  • Autocommit ကို ပိတ်ထားကြောင်းသေချာပါစေ ( STORT_TRANSATESATESATESATESATESATES သည် Autocommit Mode ကိုအလိုအလျောက်ဖွင့်လိမ့်မည်) ။
  • အမြဲတမ်းအရောင်းအ 0 ယ်များကို စမ်းကြည့်ပါ။
  • အ 0 ်အထင်ကလျော်ညီလာခံများ၌သော့ခတ်ခြင်းနှင့်သီးခြားပမာဏကိုကျိုးကြောင်းဆီလျော်စွာအသုံးပြုပါ

5 ။ အကျဉ်းချုပ်

MySQLI :: Instransaction ကို အသုံးပြုခြင်းသည် PHP developer များအား PHP developer များအားငွေပေးငွေယူသည့်လုပ်ငန်းစဉ်များကိုပိုမိုအလိုလိုနူးညံ့။ ထိန်းချုပ်နိုင်သည်။ အမှန်တကယ်စီမံကိန်းများအရယုတ္တိဗေဒဆိုင်ရာဒေတာဘေ့စ်လုပ်ငန်းများလုပ်ဆောင်မှုများကိုအကောင်အထည်ဖော်သည့်အခါအရောင်းအ 0 ယ်များကိုအသုံးပြုရန်နှင့်ဒေတာရှေ့နောက်ညီညွတ်မှုနှင့်လုံခြုံမှုကိုသေချာစေရန်အမှားကိုင်တွယ်ခြင်းနှင့် Rollback Logic ၏ကောင်းသောအလုပ်ကိုလုပ်ပါ။

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

    mysqli