PHP SQL 将 LAST_INSERT_ID() 赋值给一个变量
Posted
技术标签:
【中文标题】PHP SQL 将 LAST_INSERT_ID() 赋值给一个变量【英文标题】:PHP SQL assign LAST_INSERT_ID() into a variable 【发布时间】:2020-11-24 11:58:03 【问题描述】:我正在尝试将LAST_INSERT_ID()
分配给一个变量。当我使用LAST_INSERT_ID()
时它可以工作,但是当我使用$id = LAST_INSERT_ID();
时它不起作用。
作品:
INSERT INTO pooruser (userid, name) values (LAST_INSERT_ID(), 'Jack')
不起作用:
$id = LAST_INSERT_ID();
INSERT INTO freeuser (userid, name) values ('$id', 'Jack')
我不确定为什么它不起作用。如果有人可以帮助我,我将不胜感激!
此外,如果我可以让它工作以将其存储在会话中,我会做$_SESSION('id') = $id;
吗?
再次感谢任何帮助!
【问题讨论】:
【参考方案1】:你使用LAST_INSERT_ID()
错了:
$stmt = $db->prepare("...");
$stmt->execute();
$id = $db->lastInsertId();
如果你想用 SQL 而不是 PDO API 来做,你可以像普通的选择查询一样做:
$stmt = $db->query("SELECT LAST_INSERT_ID()");
$lastId = $stmt->fetchColumn();
资源:PDO get the last ID inserted 这里是其他连接的例子:https://www.w3schools.com/php/php_mysql_insert_lastid.asp
对于会话:
$_SESSION['id'] = $id;
【讨论】:
以上是关于PHP SQL 将 LAST_INSERT_ID() 赋值给一个变量的主要内容,如果未能解决你的问题,请参考以下文章
我在 php 和 mysql 中使用 LAST_INSERT_ID() 但我无法得到结果。为啥?
mysql @@identity 与 sql-server last_insert_id()
php 函数 last_insert_id() 不适用于 REPLACE INTO 查询
使用从 php 中选择 last_insert_id() 不起作用
Spring Batch 无法获取 last_insert_id();嵌套异常是 java.sql.SQLException: Lock wait timeout exceeded;