简体   繁体   English

PHP SQL 将 LAST_INSERT_ID() 赋值给一个变量

[英]PHP SQL assign LAST_INSERT_ID() into a variable

I am trying to assign LAST_INSERT_ID() into a variable.我正在尝试将LAST_INSERT_ID()分配给一个变量。 When I use LAST_INSERT_ID() it works but when I do $id = LAST_INSERT_ID();当我使用LAST_INSERT_ID()它可以工作,但是当我使用$id = LAST_INSERT_ID(); it doesn't work.它不起作用。

Works: "INSERT INTO pooruser (userid, name) values (LAST_INSERT_ID(), 'Jack')"作品: "INSERT INTO pooruser (userid, name) values (LAST_INSERT_ID(), 'Jack')"

Doesn't Work: $id = LAST_INSERT_ID(); "INSERT INTO freeuser (userid, name) values ('$id', 'Jack')"不起作用: $id = LAST_INSERT_ID(); "INSERT INTO freeuser (userid, name) values ('$id', 'Jack')" $id = LAST_INSERT_ID(); "INSERT INTO freeuser (userid, name) values ('$id', 'Jack')"

I'm not really sure why it won't work.我不确定为什么它不起作用。 If anyone can help me I would greatly appreciate it!如果有人可以帮助我,我将不胜感激!

Also if I can get this to work to store that in a session would I then do $_SESSION('id') = $id;另外,如果我可以让它工作以将其存储在会话中,那么我将执行$_SESSION('id') = $id; ? ?

Again, any help is appreciated!再次,任何帮助表示赞赏!

You are using LAST_INSERT_ID() wrong:您正在使用LAST_INSERT_ID()错误:

$stmt = $db->prepare("...");
$stmt->execute();
$id = $db->lastInsertId();

If you want to do it with SQL instead of the PDO API, you would do it like a normal select query:如果你想用 SQL 而不是 PDO API 来做,你可以像普通的选择查询一样做:

$stmt = $db->query("SELECT LAST_INSERT_ID()");
$lastId = $stmt->fetchColumn();

Resource: PDO get the last ID inserted资源: PDO 获取最后插入的 ID

Here examples for other connections: https://www.w3schools.com/php/php_mysql_insert_lastid.asp这里其他连接的例子: https : //www.w3schools.com/php/php_mysql_insert_lastid.asp

For session:对于会话:

$_SESSION['id'] = $id;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM