关于PHP的mysql函数的mysql_insert_id()问题
我知道PHP中mysql_insert_id()函数可以得到最后一次操作数据库后生成的ID,也就是自动添加的ID,我的问题是,当同一个页面有多人同时提交的时候,产生的ID...
我知道PHP中mysql_insert_id()函数可以得到最后一次操作数据库后生成的ID,也就是自动添加的ID,我的问题是,当同一个页面有多人同时提交的时候,产生的ID会不会出错,也就是每个人产生的ID会不会不一样,还是产生的最后一个人生成的ID值。这个mysql_insert_id()函数是不是以进程来区别的。不同人操作产生不同的进程,因此产生的ID就是这个人最后一次操作的ID??
展开
2013-04-12
展开全部
这应该是你的理解偏差了,既然是多个人提交,那么就要产生多个页面,也就是在不同的电脑上,这也就是每个人提交后生成的ID会返回到那个人的页面上去,你是不用单选这个的了,就想session这个函数,他的意思是在服务器端存储,如果是这样的话,只要是有多人在线的话,既然是服务器存储的了,那么我们每个连接服务器的客户端“按理”来说都可以用那些ID的,但是不可能出现这种情况的,不信的话你可以在虚拟机中用几个客户端同时连入服务器,看看结果吧,这些和你说的话,你还是没有自己实践理解的透彻,我同学刚接触session这个函数的时候就出现了我说的那个想法,我也被问蒙了,我俩互相连接了一下,结果是没问题的,具体是怎么解决的我不明白,不过他在这方面是不会出现你说的问题的,除非是你在一台机器中开不同的页面,但是这样的话,也是多个页面,返回的ID还是根据来的那个页面返回去的,你不可能在一个页面中写多个一样的表单,然后提交,这是没有意义的,同时也不可能点上多个提交按钮,因为点了一个后他就会跳转了,呵呵,我说的可能有些乱,但是希望能够让你理解过来。我建议你自己试试你所说的,而且是要试试多种,让自己彻底的了解这种说法!希望能够对你有帮助!我这是用了双倍经验卡,哈哈,不然没时间说的了,不过希望你能选我的为答案那样我就快升级了,哈哈!
展开全部
int mysql_insert_id( [resource link_identifier] )
mysql_insert_id()返回给定的 link_identifier中上一步 INSERT 查询中产生的 AUTO_INCREMENT 的 ID 号。如果没有指定 link_identifier,则使用上一个打开的连接。
如果上一查询没有产生 AUTO_INCREMENT 的值,则 mysql_insert_id()返回 0。如果需要保存该值以后使用,要确保在产生了值的查询之后立即调用 mysql_insert_id()。
MySQL 中的 SQL 函数 LAST_INSERT_ID()总是保存着最新产生的 AUTO_INCREMENT 值,并且不会在查询语句之间被重置。
当同一个页面有多人同时提交的时候,产生的ID会不会出错,也就是每个人产生的ID不一样,产生最后一个人的ID值,函数是以进程来区别的
mysql_insert_id()返回给定的 link_identifier中上一步 INSERT 查询中产生的 AUTO_INCREMENT 的 ID 号。如果没有指定 link_identifier,则使用上一个打开的连接。
如果上一查询没有产生 AUTO_INCREMENT 的值,则 mysql_insert_id()返回 0。如果需要保存该值以后使用,要确保在产生了值的查询之后立即调用 mysql_insert_id()。
MySQL 中的 SQL 函数 LAST_INSERT_ID()总是保存着最新产生的 AUTO_INCREMENT 值,并且不会在查询语句之间被重置。
当同一个页面有多人同时提交的时候,产生的ID会不会出错,也就是每个人产生的ID不一样,产生最后一个人的ID值,函数是以进程来区别的
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个id是你上一次操作的id··如果有人刚好在同一时间加入··那么这个ID应该是相等的·····要避免这种情况·就要用锁··
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询