>  Q&A  >  본문

트랜잭션 메커니즘을 설정하고 의도적으로 두 번째 SQL 문을 잘못 설정했는데 첫 번째 SQL 문이 결국 실행되면 트랜잭션이 롤백되고 전혀 실행되지 않아야 합니까?


<?php

$pdo=new PDO('mysql:host=localhost;dbname=student','root','root');

try{

$pdo->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$pdo->beginTransaction();

//첫 번째 SQL 문

$sqla="delete from chen where id=14";

$ pdo->exec($sqla);

//둘째 날의 sql 문

$sqlb="delete froms chen where id=15"; //고의로 잘못 쓴 것

$pdo- > ;exec($sqlb);


}catch(Exception $e){

$pdo->rollBack();

$e->getMessage();

echo "작업 실패했습니다 ";

}

?>


陈老师陈老师2368일 전1184

모든 응답(1)나는 대답할 것이다

  • NULL

    NULL2018-05-21 10:55:04

    데이터베이스 엔진이 MyISAM인가요? InnoDB로 바꿔보세요

    회신하다
    1
  • 陈老师

    예, 문제를 찾았습니다. 정말 감사합니다.

    陈老师 · 2018-05-21 10:55:46
  • 취소회신하다