PHP pdo 事宜无法回滚
程序员文章站
2022-05-19 09:59:53
...
PHP pdo 事务无法回滚
public function submit(){
try {
$this->beginTransaction();
$this->exec('update people set age=2');
$this->exec('INSERT INTO course (course,num) VALUES ("数学",100)');
$this->commit();
}catch (Exception $e){
$this->rollBack();
}
}
这是小弟的事务模块大致如上,数据库引擎为InnoDB,但不知道为何SQL如果执行错误,pdo始终不执行回滚,请高人指定,小弟感激不尽。。。
------解决方案--------------------
不要用try试试,我觉得这里不会抛出异常
public function submit(){
try {
$this->beginTransaction();
$this->exec('update people set age=2');
$this->exec('INSERT INTO course (course,num) VALUES ("数学",100)');
$this->commit();
}catch (Exception $e){
$this->rollBack();
}
}
这是小弟的事务模块大致如上,数据库引擎为InnoDB,但不知道为何SQL如果执行错误,pdo始终不执行回滚,请高人指定,小弟感激不尽。。。
------解决方案--------------------
不要用try试试,我觉得这里不会抛出异常
- PHP code
$this->beginTransaction(); $this->exec('update people set age=2'); //$step1 = mysql_error();//你的类里,改成如果执行sql错误,获取错误代码,相应的函数 $this->exec('INSERT INTO course (course,num) VALUES ("数学",100)'); //$step2 = mysql_error(); if (!$step1 && !$step2) { $this->commit(); } else { $this->rollBack(); }
------解决方案--------------------
同意2楼,
两条语句应该只会返回true或false
用if判断就可以了,,不要用 try相关文章
相关视频
推荐阅读
-
WatchOS2 Beta3无法回滚:只能返厂
-
解析php mysql 事务处理回滚操作(附实例)
-
JDBC 批处理 无法回滚 struts2jdbcrollback
-
Spring事务无法回滚异常处理记录与小结
-
thinkphp 的事务回滚处理 和 原始PHP的事务回滚实例,thinkphp实例_PHP教程
-
php中mysql事务回滚无效怎么办
-
mysql - CentOS6.5下php无法使用pdo
-
sublime text2 保存php文件提示“无法启动此程序,因为计算机中丢失php_pdo.dll 尝试重新安装该程序以解决此有关问题”
-
pdo事务回滚的问题
-
sublime text2 保存php文件提示“无法启动此程序,因为计算机中丢失php_pdo.dll 尝试重新安装该程序以解决此问题”