在if(money >= 100)之后的瞬间,
money被其它线程更新至小于100,
而此时,update bank set money-100 where mid=1 仍被执行,
所以会出现money字段成负数现象。解决方法有2:
1.让数据库支持事务处理
2.更新数据处理全部封装,实现单线程处理(这种实现用PHP不好弄)

解决方案 »

  1.   

    money是什么类型的?
    这样看看。
    update bank set money-100 where mid=1 and monery >= 100
    看程序流程,应该不会是被攻击了,看看是不是逻辑那里出问题了。
      

  2.   

    感觉mid=1有点怪,条件永远为真?
      

  3.   


    这东西就怕有意为之,销售类的网站还是用JSP吧,数据库封装方便些,也安全些