错误出错提示和数据库以及代码都在下面。
我测试的方法是200个进程同一时刻访问
好像得额外加锁,参看:http://www.thinkphp.cn/topic/9964.html
另外你这只是一种写的情况,应该也有写zt为0的写把,你这样的死锁应该是和另外写zt为0的冲突吧,那里也要保证事务开始和结束,以及加锁。
一般来说startTrans应该跟随commit或者rollback结束,但是你那在if($data!=null)之外的情况没有,加一下为好。
或者把查找放在startTrans外,只有if($data!=null)才做startTrans操作。
启动了一个事务就应该commit或rollback. if里面做了commit,if之外的情况没有做处理