从Insert row query-MySQL和PHP返回一个列条目

从Insert row query-MySQL和PHP返回一个列条目,php,mysql,Php,Mysql,情况如下: 我应该做一个小网站,用户可以注册,我使用的是一个名为users的表和字段 userid int unsigned auto_increment, name varchar(50), gender enum('m','f'), time datetime, joiningyear int unsigned, primary key (userid) 当我插入一个新用户时,我还应该通过将他的用户ID的加密形式保存为cookie来让他登录。问题是,如果已经使用了userid,它会自动递增

情况如下: 我应该做一个小网站,用户可以注册,我使用的是一个名为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,这是显而易见的。我希望将这个新值作为insert查询的输出,而无需添加另一个获取它的查询,这将使事情变得简单

目前我正在使用两个独立的查询,一个是检查随机选择的userid是否已经被使用,另一个是插入条目。
插入用户(…)值(…)


有没有一种方法可以通过一个查询实现这一点?

取决于您可以使用的MySql适配器:

或者。还有,但描述如下:

不鼓励使用此扩展名。相反,应该使用MySQLi或PDO_MySQL扩展。有关更多信息,请参见MySQL:选择API指南和相关常见问题解答

如果您使用的是任何框架,它都应该支持返回上次插入的id。

mysql\u insert\u id()将为新用户提供上次插入的id。只要你没有大量涌入,你就可以使用它


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

插入后,可以在
LAST\u insert\u ID()
函数中使用,以便在MySQL中的下一个查询中使用,也可以通过PHP中的
MySQL\u insert\u ID()
使用(或您的API提供的任何内容)。除非执行插入操作,否则通常不需要查询id。将cookie值存储在表中..?为什么不保存加入日期而不是年份..用户id是自动递增的,它将如何被使用..PHP/MySQL常客,我们对此有参考问题吗?如果我们找到了,我永远也找不到。即使有大量的难民涌入,也没关系。这些值依赖于连接,每个脚本都有自己的连接。除非执行多个插入导致值被覆盖,否则无论有多少其他并发用户,它都将在同一个PHP脚本中可用。
mysqli
和PDO是这里唯一值得考虑的
mysql
使用起来太危险了。