我最近从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
发布于 2013-03-26 15:22:48
我在sql脚本中根本看不到auto_increment列。如果您需要它,那么您的表create query应该是这样的
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-26 15:07:22
我看不到实际调用注册函数的代码。但这张桌子看起来没问题。您是否尝试过通过控制台将数据插入此表中?尝试输入与您在表单中输入的数据相同的数据,并查看将输入的数据。
发布于 2013-03-26 15:12:51
当您想要插入一个新记录,并且您有id主键和auto_increment 时,可以尝试这样做:
insert into users (username,password,userid,userlevel,email,timestamp) values
('username','password','userid','userlevel','email','timestamp');您省略了字段id,因为它是自动递增的,请在您要插入脚本中的表的位置进行此修改
https://stackoverflow.com/questions/15631036
复制相似问题