首頁  >  問答  >  主體

請問設定了事務機制,故意設定第2條sql語句錯誤,為什麼最後還是執行了第1條sql語句? 不是應該回滾事務,所有不執行嗎?


<?php

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

try{

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

$pdo->beginTransaction();

## //第1條sql語句

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

$pdo->exec($sqla) ;

//第2天sql語句

$sqlb="delete froms chen where id=15"; //故意把from寫錯

$pdo->exec($sqlb);


#}catch(Exception $e){

$pdo ->rollBack();

$e->getMessage();

echo "操作失敗";

}

?>


陈老师陈老师2368 天前1189

全部回覆(1)我來回復

  • NULL

    NULL2018-05-21 10:55:04

    資料庫引擎是不是MyISAM,改成InnoDB試試看

    回覆
    1
  • 陈老师

    嗯 是的 發現問題了 非常感謝您 厲害

    陈老师 · 2018-05-21 10:55:46
  • 取消回覆