猿问

如下执行语句中有一个错误,为什么没有回滚,是代码写错了吗?该怎么解决?

<?php
$pdo=new PDO('mysql:host=localhost;dbname=test','root','');
$pdo->exec('set names utf8');
$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);

try{
$pdo->beginTransaction();
$sql="delete from user where id=10";
$smt=$pdo->prepare($sql);
$smt->execute();

$sql="delete fom user where id=8";
$smt=$pdo->prepare($sql);
$smt->execute();

$pdo->commit();
}catch(PDOException $e){
echo $e->getMessage();
$pdo->rollBack();
}

智慧大石
浏览 129回答 1
1回答

吃鸡游戏

On Error GoTo 0表示禁止当前过程中任何已启动的错误处理程序。On Error Resume Next说明当一个运行时错误发生时,控件转到紧接着发生错误的语句之后的语句,并在此继续运行。访问对象时要使用这种形式而不使用 On Error GoTo。On Error GoTo line启动错误处理程序,且该例程从必要的 line 参数中指定的 line 开始。line 参数可以是任何行标签或行号。如果发生一个运行时错误,则控件会跳到 line,激活错误处理程序。指定的 line 必须在一个过程中,这个过程与 On Error 语句相同; 否则会发生编译时间错误。
随时随地看视频慕课网APP
我要回答