0

这是场景:我应该创建一个用户可以注册的小网站,我正在使用一个名为 users 的表,其中包含字段

userid int unsigned auto_increment,
name varchar(50),
gender enum('m','f'),
time datetime,
joiningyear int unsigned,
primary key (userid)

当我插入一个新用户时,我还应该通过将他的用户 ID 的加密形式保存为 cookie 来让他登录。问题是,如果 userid 已经被使用,它会自动增加 1,这很明显。我想接收这个新值作为我的插入查询的输出,而不添加另一个获取它的查询,这将使事情变得容易。

目前我正在使用两个单独的查询,一个是检查是否已经采用了随机选择的用户 ID,第二个是插入条目。 Insert into users(......) values(...)

有没有办法通过一个查询来实现这一点?

4

2 回答 2

2

根据您的 MySql 适配器,您可以使用:

mysqli_insert_idPDO::lastInsertId。还有mysql_insert_id但描述为:

不鼓励使用此扩展程序。相反,应该使用 MySQLi 或 PDO_MySQL 扩展。另请参阅 MySQL:选择 API 指南和相关的常见问题解答以获取更多信息。

如果您使用任何框架,它应该支持返回最后插入的 id。

于 2012-09-25T14:09:27.697 回答
0

mysql_insert_id() 将为您提供新用户最后插入的 ID。只要您没有大量涌入,就可以使用它。

最终,根据他们的输入信息检索信息的第二个查询就可以了,然后将其存储到 cookie 中。

于 2012-09-25T14:10:15.150 回答