>  기사  >  백엔드 개발  >  은행 송금 example_php 기술을 구현하는 PHP mysqli 거래 제어

은행 송금 example_php 기술을 구현하는 PHP mysqli 거래 제어

WBOY
WBOY원래의
2016-05-16 20:24:27974검색

이 글의 예시에서는 php mysqli 거래 제어를 통해 은행 송금을 구현하는 방법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 분석은 다음과 같습니다.

트랜잭션 제어, 즉 모든 명세서는 성공적으로 실행될 때까지 제출되지 않습니다. 그렇지 않은 경우 이전 명령문은 성공적으로 실행되었으나 후속 명령문은 성공적으로 실행되지 못한 경우 실행 전 상태로 롤백됩니다. 이 응용 프로그램은 은행 송금의 경우를 통해 설명됩니다. 한 계좌에서 돈을 이체하는 경우, 돈이 성공한 것으로 간주되려면 다른 계좌로 돈이 이체되어야 합니다.

코드는 다음과 같습니다.

<&#63;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 "转账成功";
}
&#63;>

이 기사가 모든 사람의 PHP 프로그래밍 설계에 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.