MySQL 트랜잭션은 주로 대규모 작업과 복잡성이 높은 데이터를 처리하는 데 사용됩니다. 예를 들어 인사관리 시스템에서 사람을 삭제하면 그 사람의 기본 정보도 삭제해야 하고, 사서함, 글 등 그 사람과 관련된 정보도 삭제해야 합니다. 이런 식으로 이러한 데이터베이스 운영 문은 비즈니스를 구성합니다!
MySQL에서는 Innodb 데이터베이스 엔진을 사용하는 데이터베이스나 테이블만 트랜잭션을 지원합니다.
트랜잭션 처리를 사용하여 데이터베이스의 무결성을 유지하고 SQL 문 일괄 처리가 모두 실행되거나 전혀 실행되지 않도록 할 수 있습니다.
트랜잭션은 삽입, 업데이트, 삭제 문을 관리하는 데 사용됩니다.
일반적으로 트랜잭션은 네 가지 조건(ACID)을 충족해야 합니다: 원자성(원자성), 일관성(안정성), 격리(격리), 내구성(신뢰성)
1. 트랜잭션의 원자성: 트랜잭션 집합이 성공하거나 철회됩니다.
2. 안정성: 불법 데이터(외래 키 제약 조건 등)가 있는 경우 거래가 철회됩니다.
3. 격리: 트랜잭션이 독립적으로 실행됩니다. 한 거래의 결과가 다른 거래에 영향을 미치는 경우 다른 거래가 철회됩니다. 트랜잭션을 100% 격리하려면 속도가 희생되어야 합니다.
4. 신뢰성: 소프트웨어 또는 하드웨어 충돌 후 InnoDB 데이터 테이블 드라이버는 로그 파일을 사용하여 재구성하고 수정합니다. 안정성과 고속은 호환되지 않습니다. innodb_flush_log_at_trx_commit 옵션은 트랜잭션을 로그에 저장할 시기를 결정합니다.
php mysql 트랜잭션 처리 구현 프로그램 코드는 다음과 같습니다.
코드는 다음과 같습니다.
<?PHP $LinkID =mysql_connect('localhost:3307','root',*******); mysql_select_db('web_his',$LinkID); mysql_query("set names utf8"); /* 创建事务 */ mysql_query('START TRANSACTION') or exit(mysql_error()); $ssql1="insert into pf_item values('22','我们','30')"; //执行sql 1 if(!mysql_query($ssql1)){ echo $ssql1.mysql_errno().":".mysql_error()."<br>"; mysql_query('ROLLBACK') or exit(mysql_error());//判断当执行失败时回滚 exit; } $ssql1="insert into pf_item values('21','hell','10')"; //执行sql 2 if(!mysql_query($ssql1)){ echo $ssql1.mysql_errno().":".mysql_error()."<br>"; mysql_query('ROLLBACK') or exit(mysql_error());//判断当执行失败时回滚 exit; } mysql_query('COMMIT') or exit(mysql_error());//执行事务 mysql_close($LinkID); ?>
위 내용은 PHP에서 MySQL 트랜잭션 처리를 구현하는 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!