mysql事务问题


php连接mysql在一个事务中有如下代码:先插入某条数据,再查询这笔数据
$id=Tools::createId();//生成全局id,
$data=array('id'=>$id,'name'=>'xxx');
$db->beginTrans();
$db->insert('table',$data);往table中插入数据

$info=$db->fetchRow($id) //这里获取不到??$info为空,但我们在ms sql server数据库中是能正常获取到的,

..这里还有许多根据此id,操作其它....

$db->commit();

不知道mysql为什么这样?没有办法?我们只有在第一条插入时,不加入到事务中,但我们在ms sql server中一直都可以放在同一事务中

mysql

埃克斯☆咖喱棒 12 years, 6 months ago

这要看数据库使用的是哪些事务模式,分二种:
1. Consistent read (mysql默认) 未提交读,允许脏读,也就是可能读取到其他会话中未提交事务修改的数据;
2. 提交读(Read Committed)只能读取到已经提交的数据;
看来你使用的是第二种。

stykdl answered 12 years, 6 months ago

Your Answer