开启事务,修改数据后在commit之前进行查询操作报错

浏览:4807 发布日期:2016/07/23 分类:求助交流 关键字: 事务 mysql
报错信息There is no active transaction,
这个报错信息应该不是mysql报的错吧,是不是thinkPHP框架报错?

我数据库表是Innodb的,事务级别也是mysql默认的Repeatable Read,按理说是可以在事务未提交时进行查询的吧?并且我用原生mysql命令尝试开启事务修改数据后查询是可以的,但相同的逻辑thinkPHP就不行

mysql命令:
mysql>START TRANSACTION;
执行成功,花费 100.20 ms.
mysql>update db_company_project_goods set stock_num = 98 where id = 85
共影响 1 行记录,花费 100.19 ms.
mysql>select * from db_company_project_goods where id = 85
共返回 1 行记录,花费 256.42 ms.
mysql>commit;
执行成功,花费 100.88 ms.

thinkPHP
$model = M();
$model->startTrans(); //开启事务
//更新数据 !!可以成功
$model->table('db_company_project_goods')->where(array('id'=>$good_id))->setDec('stock_num',$value['num']);

//查询数据!!失败, 报错退出
$model->table('db_company_project_goods')->where(array('id'=>$good_id))->find();
报错信息There is no active transaction

thinkPHP版本为3.2.3
最佳答案
评论( 相关
后面还有条评论,点击查看>>