这个报错信息应该不是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
最佳答案