이 글의 예시에서는 php mysqli 거래 제어를 통해 은행 송금을 구현하는 방법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 분석은 다음과 같습니다.
트랜잭션 제어, 즉 모든 명세서는 성공적으로 실행될 때까지 제출되지 않습니다. 그렇지 않은 경우 이전 명령문은 성공적으로 실행되었으나 후속 명령문은 성공적으로 실행되지 못한 경우 실행 전 상태로 롤백됩니다. 이 응용 프로그램은 은행 송금의 경우를 통해 설명됩니다. 한 계좌에서 돈을 이체하는 경우, 돈이 성공한 것으로 간주되려면 다른 계좌로 돈이 이체되어야 합니다.
코드는 다음과 같습니다.
<?php //1、创建数据库连接对象 $mysqli = new MySQLi("localhost","root","123456","liuyan"); if($mysqli->connect_error){ die($mysqli->connect_error); } $mysqli->query("set names 'GBK'"); $mysqli->autocommit(false); //首先设置autocommit为false,也就是不自动提交 $sql1 = "update account set balance=balance-2 where id=1;"; $sql2 = "update account set balance=balance+2 where id=2;"; $res1 =$mysqli->query($sql1) or die($mysqli->error); $res2 =$mysqli->query($sql2) or die($mysqli->error); if(!$res1 || !$res2){ echo "转账失败"; $mysqli->rollback();//如果有一条不成功,则回滚 }else{ $mysqli->commit();//两条语句都执行成功,则提交 echo "转账成功"; } ?>
이 기사가 모든 사람의 PHP 프로그래밍 설계에 도움이 되기를 바랍니다.