>  기사  >  백엔드 개발  >  PHP에서 MySQL 트랜잭션 처리를 구현하는 방법에 대한 자세한 설명

PHP에서 MySQL 트랜잭션 처리를 구현하는 방법에 대한 자세한 설명

怪我咯
怪我咯원래의
2017-07-12 16:33:512681검색

MySQL 트랜잭션은 주로 대규모 작업과 복잡성이 높은 데이터를 처리하는 데 사용됩니다. 예를 들어 인사관리 시스템에서 사람을 삭제하면 그 사람의 기본 정보도 삭제해야 하고, 사서함, 글 등 그 사람과 관련된 정보도 삭제해야 합니다. 이런 식으로 이러한 데이터베이스 운영 문은 비즈니스를 구성합니다!

MySQL에서는 Innodb 데이터베이스 엔진을 사용하는 데이터베이스나 테이블만 트랜잭션을 지원합니다.

트랜잭션 처리를 사용하여 데이터베이스의 무결성을 유지하고 SQL 문 일괄 처리가 모두 실행되거나 전혀 실행되지 않도록 할 수 있습니다.

트랜잭션은 삽입, 업데이트, 삭제 문을 관리하는 데 사용됩니다.

일반적으로 트랜잭션은 네 가지 조건(ACID)을 충족해야 합니다: 원자성(원자성), 일관성(안정성), 격리(격리), 내구성(신뢰성)

1. 트랜잭션의 원자성: 트랜잭션 집합이 성공하거나 철회됩니다.

2. 안정성: 불법 데이터(외래 키 제약 조건 등)가 있는 경우 거래가 철회됩니다.

3. 격리: 트랜잭션이 독립적으로 실행됩니다. 한 거래의 결과가 다른 거래에 영향을 미치는 경우 다른 거래가 철회됩니다. 트랜잭션을 100% 격리하려면 속도가 희생되어야 합니다.

4. 신뢰성: 소프트웨어 또는 하드웨어 충돌 후 InnoDB 데이터 테이블 드라이버는 로그 파일을 사용하여 재구성하고 수정합니다. 안정성과 고속은 호환되지 않습니다. innodb_flush_log_at_trx_commit 옵션은 트랜잭션을 로그에 저장할 시기를 결정합니다.

php mysql 트랜잭션 처리 구현 프로그램 코드는 다음과 같습니다.

코드는 다음과 같습니다.

<?PHP 
$LinkID =mysql_connect(&#39;localhost:3307&#39;,&#39;root&#39;,*******); 
mysql_select_db(&#39;web_his&#39;,$LinkID); 
mysql_query("set names utf8"); 
 
/* 创建事务 */ 
mysql_query(&#39;START TRANSACTION&#39;) or exit(mysql_error()); 
$ssql1="insert into pf_item values(&#39;22&#39;,&#39;我们&#39;,&#39;30&#39;)";  //执行sql 1 
if(!mysql_query($ssql1)){ 
   echo $ssql1.mysql_errno().":".mysql_error()."<br>"; 
   mysql_query(&#39;ROLLBACK&#39;) or exit(mysql_error());//判断当执行失败时回滚 
   exit; 
} 
$ssql1="insert into pf_item values(&#39;21&#39;,&#39;hell&#39;,&#39;10&#39;)";  //执行sql 2 
if(!mysql_query($ssql1)){
  echo $ssql1.mysql_errno().":".mysql_error()."<br>"; 
     mysql_query(&#39;ROLLBACK&#39;) or exit(mysql_error());//判断当执行失败时回滚 
   exit; 
} 
 
mysql_query(&#39;COMMIT&#39;) or exit(mysql_error());//执行事务 
 
mysql_close($LinkID); 
?>

위 내용은 PHP에서 MySQL 트랜잭션 처리를 구현하는 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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