mysqli与pdo有什么比较好的方式捕获错误,进行事务?
//执行语句 //参数为是否开启事务默认1:开启,其他均为关闭 public function exe($commit = 1) { if($commit==1){ $this->beginCommit(); } //判断影响的条数是否正常,注意这里每次只能插入一条 $q = $this->stmt->execute(); if (!$q) { // (new BaseException($this->con->error))->__warn(); (new Tip("预处理执行异常错误代码:" . $this->con->error))->tip(); if($commit==1){ $this->rollback(); } return false; } if ($this->stmt->affected_rows != 1) { (new Tip("数据未插入成功请检查代码"))->tip(); if($commit==1){ $this->rollback(); } return false; } if($commit==1){ $this->realCommit(); } return $this; }
------------------------------------------------------------------------------------------------------------------------
以上是整体代码中的一部分,我的问题是关于事务处理的,老师您看代码,我觉得应该有一个比较完善的mysqli运行错误的捕获机制,如代码中什么时候开启必须通过一个参数来判断,每一种异常发生都需要回滚,感觉代码写的太冗余。
------------------------------------------------------------------------------------------------------------------------
问题:
1.有没有什么好的最好是面向对象的方式去捕获错误,从而去回滚?如果没有我总是有印象,大多数都使用try...catch 解决的,能不能讲讲怎么具体使用呢?
2.我并不知道什么时候应该开始事务,什么时候应该回滚,什么时候应该提交,视频里老师的例子太浅了,我这是拍脑袋想的,麻烦老师讲讲在增删改查中正确的运用事务的流程
正在回答
您好,function并不需要public修饰。如果错误,是根据操作进行判断,根据操作的返回结果进行判断,或者使用try-catch。
2.事务使用流程:连接数据库后,开启事务。操作sql语句,根据结果判断是否操作成功,成功则提交事务,失败则事务回滚。增删改流程是一样的。查询并不涉及修改数据,不需要使用事务。
祝学习愉快!
- 参与学习 人
- 提交作业 225 份
- 解答问题 3372 个
掌握用PHP开发互联网网站的必备功能,掌握当下主流的Linux系统开发,并熟练使用热门框架ThinkPhp开发电商团购项目,是通向PHP工程师必经之路。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星