0

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

这是我使用的 SQL

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

4

3 回答 3

1

好吧,我在 sql 脚本中根本看不到 auto_increment 列。如果您需要它,那么您的表创建查询应该是这样的

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 也可能在插入时出错。

于 2013-03-26T07:22:48.423 回答
0

我看不到实际调用注册功能的代码。但似乎这张桌子还不错。您是否尝试通过控制台将数据插入此表?尝试输入您在表单中输入的相同数据,看看会是什么。

于 2013-03-26T07:07:21.793 回答
0

当你想插入一条新记录并且你有 id 主键和 auto_increment 试试这个:

insert into users (username,password,userid,userlevel,email,timestamp) values
('username','password','userid','userlevel','email','timestamp');

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

于 2013-03-26T07:12:50.950 回答