我最近从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
答案 0 :(得分: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您需要插入由/ application生成的唯一主键。 MySQL不会插入任何值。此外,mysql可能会在插入时出错。
答案 1 :(得分:0)
我看不到实际调用注册函数的代码。但似乎表格很好。您是否尝试通过控制台将数据插入此表?试图输入您在表单中输入的相同数据,看看会是什么。
答案 2 :(得分:0)
当您要插入新记录并且您具有id主键和auto_increment时 试试这个:
insert into users (username,password,userid,userlevel,email,timestamp) values
('username','password','userid','userlevel','email','timestamp');
您省略了字段ID,因为它是自动递增的,请在插入的位置进行此修改 进入脚本中的表