>백엔드 개발 >PHP 튜토리얼 >PDO 트랜잭션 기능에 대하여

PDO 트랜잭션 기능에 대하여

autoload
autoload원래의
2021-03-05 17:37:143142검색

정의: PDO 트랜잭션 기능은 PDO의 추가 기능이 아니라 원래 MySQL에서 지원하는 트랜잭션 작업을 수정한 것입니다. 특정 캡슐화 구현 . 참고: 트랜잭션 실행의 성공 여부는 MySQL에 해당하는 스토리지 엔진이 이를 지원하는지 여부에 따라 결정됩니다. PDO事务功能,并非PDO额外多出了一项功能,而是将原来MySQL所支持的事务操作进行了一定的封装实现。注意:事务执行是否成功是由MySQL对应的存储引擎是否支持决定的。

    1.事务功能回顾:事务是指改变默认的一次操作一次写入数据表的机制,而是通过事务日志记录操作,在最后通过一次性操作写入到数据表。

  • 开启事务:start transaction,写操作停止直接写入数据表,而是记录到事务日志

  • 事务操作:具体的写操作,通常多个步骤多条指令

  • 提交事务:即事务操作结束

                    成功提交:commit,所有事务日志内容同步到数据表,并清空当前事务日志

                    失败回滚:rollback,直接清空当前事务日志

    2.PDO类中提供一套方案来实现事务操作

<?php
$pdo = new PDO(&#39;mysql:host=localhost;port=3306;dbname=my_database&#39;,&#39;root&#39;,&#39;root&#39;);
$pdo->beginTransaction() or die(&#39;事务开启失败&#39;);//开启事务
$pdo->exec(&#39;insert into student values()&#39;);//执行事务

//终止事务
$pdo->commit();				//成功提交
$pdo->rollback();			//失败回滚

    3.在事务操作中,有一种回滚点机制,在PDO中没有实现,如果有必要,可以通过SQL指令 1. 트랜잭션 기능 검토

: 트랜잭션은 데이터 테이블에 한 번 쓰는 기본 단일 작업 메커니즘을 변경하는 것을 의미하지만 트랜잭션 로그를 통해 작업을 기록하고 마지막으로 하나를 통해 데이터 테이블에 씁니다. - 시간 운영.

  • 트랜잭션 시작: 트랜잭션 시작, 쓰기 작업은 데이터 테이블에 직접 쓰기를 중지하지만 트랜잭션에 기록됩니다. log
  • 트랜잭션 작업: 특정 쓰기 작업, 일반적으로 여러 단계와 여러 지침
  • 트랜잭션 커밋: 즉, 트랜잭션 작업이 종료됩니다🎜🎜 성공적인 제출: commit, 모든 트랜잭션 로그의 내용은 데이터 테이블에 동기화되며 현재 트랜잭션 로그는 비어 있습니다.
    /ul>🎜 2. PDO 클래스는 트랜잭션 작업을 구현하는 솔루션을 제공합니다. 🎜
    🎜
    <?php
    $pdo = new PDO(&#39;mysql:host=localhost;port=3306;dbname=my_database&#39;,&#39;root&#39;,&#39;root&#39;);
    $pdo->beginTransaction() or die(&#39;事务开启失败&#39;);//开启事务
    $pdo->exec(&#39;insert into student values()&#39;);//执行事务
    //设置回滚点
    $pdo->exec(&#39;savepoint sp1&#39;);
    
    //继续执行事务...
    
    //回滚
    $pdo->exec(&#39;rollback to sp1&#39;);
    
    //终止事务
    $pdo->commit();				//成功提交
    $pdo->rollback();			//失败回滚
    ?>
    🎜 3. 트랜잭션 작업에는 롤백 지점이 있습니다. 이 메커니즘은 PDO에서 구현되지 않습니다. 필요한 경우 가능합니다. SQL 명령 설정을 통해 구현🎜🎜rrreee🎜권장: 🎜php 튜토리얼🎜, 🎜php 비디오 튜토리얼🎜🎜

위 내용은 PDO 트랜잭션 기능에 대하여의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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