QeePHP的事务安全支持

Qee对事务提供了简单的支持,当然只有在存储引擎支持事务的前提下! 比如我们的的用户表分为用户基本表member表和用户详细信息表memberfield表,他们为一对一hasone,memberfield存有member表的主键uid,假设关联的属性为field 当我们更新用户信息时,可能同时要更新member表,和memberfield表,比如: $user = $this->_app->currentUserObject(); if ($this->_context->isPOST()) { $user->nickname = trim($this->_context->nickname); $user->field->sex = $this->_context->sex; $user->save(); } 假设现在nickname没有问题,而提供的sex数据有问题,并且导致数据库插入失败,极有可能导致同一个请求nickname更改成功,sex失败,这个可能还不会导致很严重的问题,如果涉及到一些重要数据,例如电子商务等就严重了! 在Qee中添加事务比较简单,如下: $user = $this->_app->currentUserObject(); if ($this->_context->isPOST()) { QDB::getConn()->startTrans(); try { $user->nickname = trim($this->_context->nickname); $user->field->sex = $this->_context->sex; $user->save(); } catch (QException $e) { QDB::getConn()->completeTrans(false); // 友好的错误提示... } QDB::getConn()->completeTrans(true); }

posted on 2011-11-18 09:39  cn三少<script></script>  阅读(265)  评论(0编辑  收藏  举报

导航