我正在构建一个Web应用程序,可以由多个用户同时使用。他们可以同时添加数据。
我有一张名为doctor_main的表格如下
Screenshot of DB http://img687.imageshack.us/img687/7033/testxqz.png
一旦添加了关于医生的记录,我想要返回插入记录的id(这是一个自动增量字段)。
我知道我可以使用像LAST_INSERT_ID()和mysql_insert_id这样的方法。但我不知道它是如何表现的。
我需要该特定用户插入的记录的确切ID。
有时,如果两个用户试图插入记录,则返回的id不应该被交换。
要实现这一点,我应该使用什么样的mysql函数?
答案 0 :(得分:8)
手册中有一整页专门讨论这个主题:
以下是该页面的引用,可以帮助回答您的问题:
对于LAST_INSERT_ID(),最近生成的ID在每个连接的基础上维护在服务器中。它不会被其他客户改变。
答案 1 :(得分:3)
mysql_insert_id()
完全返回最后插入记录的id,所以如果你只是echo mysql_insert_id()
,你将得到最后一个插入行的id。
答案 2 :(得分:2)
根据docs,mysql_insert_id
将返回您之前插入的确切ID。
答案 3 :(得分:2)
LAST_INSERT_ID()
和mysql_insert_id
工作正常。每个客户端将收到客户端执行的最后一个语句的最后一个插入ID
。
答案 4 :(得分:2)
LAST_INSERT_ID()
按连接运行;多个用户将使用多个连接,因此用户之间永远不会交换ID。
答案 5 :(得分:-1)
如果您对last_insert_id
的机制持怀疑态度,那么您可以手动分配id
而不是MySQL的auto_increment
功能。