问:php程序中怎么可以避免两个人同时插入数据? MYSQL自己会处理插入的进程,不用你自己担心。插入前先用MAX取出该字段的最大值,加一之后插入即可。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果是从数据库取得最大值(max(value))然后加1,这样当同时取值加1 的时候就会出现重复。 避免同时插入这是个数据库问题,而不是PHP的问题.你想想,asp有没有这样的问题,jsp呢,VC呢,DELPHI呢,PB呢?这种问题和编程语言及工具无关,只与数据库有关. mysql不支持事务,如果用加锁,加锁后是不是还可以读?那样还是不可避免的取到同一个最大值,加一后,还是会有这个问题吧?想过用加锁这个方法,就是想到担心还是取到同一个最大值,虽然锁定了写的进程,但一个解锁后,另外一个提交,是不是还是一个值呢? lock tables yourtable write mysql不支持事务????????????是真的,不會吧,我要找書看看!!! 如果你是要简单的加一的话,可以这样(例如有一个数据库其中有字段‘num’)update tablename set num=num+1;这样好像能解决一点问题!您试试? 其实,这个问题几乎是所有B/S结构都会发生的问题。我们首先分析其本质,才能真正解决问题。出现这种情况,主要是当同一时间出现同操对数据库的操作,而产生的bug。所以这是数据库的问题,而不是语言的问题。MySQL在3.XX版本里,是不支持事务操作。这的确是真的。而在4.X版,就可始支持,但在PHP没有这样的操作。所以根本的解决方法,就是加锁,令同一时间只有单进程读写。还有一个问题,就是我曾经在国外看到一些资料,MySQL的流水号是可以自设开始值的。所在,你也可能用唯一处理。 请教大家此公式用php如何写简单一些?? 为什么登陆成功后时间更新的操作完不成 QL编程能力以及数据库设计能力; 不改动apache,如何支持中文下载? |zyciis| 网页安全问题:如何防止用户用javascript来更改我的数据,第二贴, 请教一个javascript循环显示相关的问题 pear的问题!! 请问有关正则表达式的问题 5分钟自助开通免费空间完全教程 include的传值问题? 请教一个关于数组的问题!高手请进! 网页留言板!
你想想,asp有没有这样的问题,jsp呢,VC呢,DELPHI呢,PB呢?
这种问题和编程语言及工具无关,只与数据库有关.
是真的,不會吧,我要找書看看!!!
update tablename set num=num+1;
这样好像能解决一点问题!您试试?
而在4.X版,就可始支持,但在PHP没有这样的操作。所以根本的解决方法,就是加锁,令同一时间只有单进程读写。还有一个问题,就是我曾经在国外看到一些资料,MySQL的流水号是可以自设开始值的。所在,你也可能用唯一处理。