我将在mysql表中插入1行,该表具有auto_increment id值,并希望获得该行的id。你知道像这样的建筑
{
INSERT INTO some_table (`name`) VALUES ('test name')
ON SUCCESS RETURN id
}表结构:
id: int not null auto_increment Primary key
name: Varchar (20)我读过关于LAST_INSERT_ID的文章,但是如果我的脚本同时被调用,则会更改两个不同的插入,LAST_INSERT_ID可能返回错误的值。
我使用的是php和准备好的语句,这些语句不允许多次提交和/或回滚。
谢谢你的想法。
发布于 2014-03-22 09:19:07
尝尝这个
$sql = "INSERT INTO some_table (`name`) VALUES ('test name')";
$result = mysql_query($sql);
$last_id = mysql_insert_id();发布于 2014-03-22 09:18:22
对于多用户使用PDO,您有错误的假设。最后,insert ID存储在连接时创建的PDO对象中。因此,这个“最后插入ID”值存储在每个连接中。这样,同时通话就不会互相干扰。
这是人工参考。
发布于 2014-03-22 09:16:36
先做插入
INSERT INTO some_table (`name`) VALUES ('test name');然后紧接着就做
SELECT id FROM some_table WHERE name = 'test name';并确保捕获后一个数据库的输出(这可能因连接到DB的方式而有所不同)。
编辑:或者,您可以在插入之后立即执行此操作:
SELECT id FROM some_table WHERE name = 'test name' ORDER BY id DESC LIMIT 1这样,您就可以避免获得同名的早期输入。
https://stackoverflow.com/questions/22575646
复制相似问题