首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法将主键(也称为自动增量)更改为用户ID而不是用户名

无法将主键(也称为自动增量)更改为用户ID而不是用户名
EN

Stack Overflow用户
提问于 2013-03-26 14:51:18
回答 3查看 183关注 0票数 0

我最近从JPMaster77得到了一个注册/登录脚本。总而言之,它工作得很好,我让脚本工作了,但当我在表中添加一个新列作为"ID“并将其更改为主键时,脚本变得很奇怪。

下面是我使用的SQL

代码语言:javascript
复制
CREATE TABLE users (
 id int(11) primary key,
 username varchar(30),
 password varchar(32),
 userid varchar(32),
 userlevel tinyint(1) unsigned not null,
 email varchar(50),
 timestamp int(11) unsigned not null
);

正如您所看到的,它实际上运行良好,直到您看到注册码。出现错误“很抱歉,发生错误,无法完成用户名测试的注册。请稍后再试。”每次任何人尝试注册时都会弹出,我相信是因为这个原因。我已经尝试解决这个问题有一段时间了,但是我不熟悉主键和自动增量。脚本有点长,所以我想把它贴在Pastebin上,而不是全部写在这里。http://pastebin.com/DYRCp3Sc

EN

回答 3

Stack Overflow用户

发布于 2013-03-26 15:22:48

我在sql脚本中根本看不到auto_increment列。如果您需要它,那么您的表create query应该是这样的

代码语言:javascript
复制
CREATE TABLE users (
 id int(11) primary key auto_increment  ,
 username varchar(30),
 password varchar(32),
 userid varchar(32),
 userlevel tinyint(1) unsigned not null,
 email varchar(50),
 timestamp int(11) unsigned not null
);

如果没有auto_increment,您需要插入由您/应用程序生成的唯一主键。MySQL不会插入任何值。此外,mysql可能会在插入时出现错误。

票数 1
EN

Stack Overflow用户

发布于 2013-03-26 15:07:22

我看不到实际调用注册函数的代码。但这张桌子看起来没问题。您是否尝试过通过控制台将数据插入此表中?尝试输入与您在表单中输入的数据相同的数据,并查看将输入的数据。

票数 0
EN

Stack Overflow用户

发布于 2013-03-26 15:12:51

当您想要插入一个新记录,并且您有id主键和auto_increment 时,可以尝试这样做:

代码语言:javascript
复制
insert into users (username,password,userid,userlevel,email,timestamp) values
('username','password','userid','userlevel','email','timestamp');

您省略了字段id,因为它是自动递增的,请在您要插入脚本中的表的位置进行此修改

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15631036

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档