gpt4 book ai didi

php - 获取事务mysql中当前插入行的id号

转载 作者:行者123 更新时间:2023-11-29 00:15:24 25 4
gpt4 key购买 nike

就 php 中的 mysql_insert_id 函数而言,如果您有如此多的插入查询流到表中,将会出现错误。

$r = mysql_query('insert query');
$id = mysql_insert_id();

在上面的示例中,您假设 id 是 4097,而 php 进程 mysql_insert_id 可能返回 4098 或 4099。这种不同是因为 mysql_insert_id 将返回表的最后一行,而不是在此连接中插入的最后一行。

我需要找到一个解决方案来获取当前插入 ID 的最后一个 ID,而不是表。

我总是这样编码:

$microtime = microtime(true)
$r = mysql_query('insert into table (time,value1,value2,value3) VALUE ($microtime,$val1,$val2,$val3));
$id = mysql_query('select from table where time="$microtime" AND value1=$val1 AND $value2=$val2 AND $value3=$val3);

我需要这样选择,因为甚至可能在同一微时间内找到 2 或 3 行!这将导致网站速度下降,因为按此标准选择将没有足够的性能。

所以我在寻找一种性能更高的方法。我很乐意听取您的建议或解决方案。

最佳答案

manual说:

int mysql_insert_id ([ resource $link_identifier = NULL ] )

Retrieves the ID generated for an AUTO_INCREMENT column by the previous query (usually INSERT).

您确定 mysql_insert_id 有问题吗?

您确定您的列是 AUTO_INCREMENT 吗?

您是否打开了多个连接?如果是这样,您需要提供 $link_identifier 参数。

关于php - 获取事务mysql中当前插入行的id号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23155212/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com