问: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+mysql输出的问题 两个有关联的表的循环问题 单引号和双引号有什么区别 敢问高人啊。。phpcas的问题 提供url让别人下载的问题,在线等 谁知道这个问题帮我解决一下 新手提出问题,顺便送分 这个东西怎么做出来? 最近小弟开发了一个网站,大家来点评一下吧 www.sobq.com 请教关于session的销毁问题 请教一个关于数组的问题!高手请进! 网页留言板!
你想想,asp有没有这样的问题,jsp呢,VC呢,DELPHI呢,PB呢?
这种问题和编程语言及工具无关,只与数据库有关.
是真的,不會吧,我要找書看看!!!
update tablename set num=num+1;
这样好像能解决一点问题!您试试?
而在4.X版,就可始支持,但在PHP没有这样的操作。所以根本的解决方法,就是加锁,令同一时间只有单进程读写。还有一个问题,就是我曾经在国外看到一些资料,MySQL的流水号是可以自设开始值的。所在,你也可能用唯一处理。