gpt4 book ai didi

php - 使用 PHP 获取最后插入的 auto_incrementID MySQL

转载 作者:行者123 更新时间:2023-11-29 02:22:36 25 4
gpt4 key购买 nike

我尝试在执行 sqlstatement 后获取最后插入的 auto_incremented ID。我正在使用 slim 框架来做到这一点。这是我的代码:

$this->conn = new mysqli(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_NAME);

...

$sql_stmt= "INSERT DELAYED INTO Tab(Id, Value1, Value2, Value3) VALUES (DEFAULT,?,?,?)";

$stmt= $this->conn->prepare($sql_stmt);
$stmt->bind_param("sss", $param1, $param2, $param3);
$stmt->execute();

这是我尝试返回递增的值:

return mysqli_insert_id($this->conn);
return $this->conn->mysqli_insert_id();
return $this->conn->insert_id;

但这行不通...

有人知道如何获取值吗?

感谢您的帮助!

最佳答案

您使用的是 INSERT DELAYED,因此在您调用该代码时它可能还没有插入。

When a client uses INSERT DELAYED, it gets an okay from the server at once, and the row is queued to be inserted when the table is not in use by any other thread.

更具体地说

Because the INSERT DELAYED statement returns immediately, before the rows are inserted, you cannot use LAST_INSERT_ID() to get the AUTO_INCREMENT value that the statement might generate. from

http://dev.mysql.com/doc/refman/5.5/en/insert-delayed.html

所以如果你想得到ID,不要使用delayed。

关于php - 使用 PHP 获取最后插入的 auto_incrementID MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29134059/

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