exec-6ren">
gpt4 book ai didi

php - lastInsertId() 用于准备语句中的更新

转载 作者:行者123 更新时间:2023-11-29 00:08:13 26 4
gpt4 key购买 nike

$query = $database->prepare("UPDATE table SET value = value WHERE value = '$value'");
$query_1->execute();
$database->connection->lastInsertId();

上面的代码不起作用。我要获取的值是主键自增。

正如 lastInsertId() 的名称所示,它可能仅用于插入。如果是这样,在更新中实现相同目标的正确方法是什么?

如果发生更新,我希望返回的值是表的主键。

有点像..

lastUpadteId()



$query_1 = $database->connection->prepare("UPDATE accounts SET traffic = traffic + '$file_size', id = LAST_INSERT_ID(id) WHERE primary_key = '$account_id'");
$query_1->execute();
echo $database->connection->lastInsertId();

抛出...

fatal error :未捕获异常“PDOException”,消息为“SQLSTATE[42S22]:未找到列:1054 未知列“id”在“字段列表”中

最佳答案

LAST_INSERT_ID() 不适用于 UPDATE,因为它适用于 INSERT。但是您仍然可以在更新后使用 LAST_INSERT_ID() 获取更新行的 ID。以下是您的查询的编写方式:

UPDATE table 
SET
value = value,
primary_key = LAST_INSERT_ID(primary_key)
WHERE value = 'some value'

您觉得 primary_key = LAST_INSERT_ID(primary_key) 很奇怪吗?然后从 MySQL 手册中阅读:http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html

关于php - lastInsertId() 用于准备语句中的更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26498960/

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