【问题标题】:Can't change SQL to have an id as primary key(AI) rather than username无法将 SQL 更改为将 id 作为主键 (AI) 而不是用户名
【发布时间】:2013-04-06 22:40:12
【问题描述】:

我最近开始使用 Jpmaster77 的登录脚本,它已经证明非常棒。但是,现在我正在尝试使用它。我正在尝试在名为“id”的行的开头创建一个新表,该表具有主键或 AI,而不是表用户名。据我所知,只有一个表可以有主键或 AI,但是当我尝试创建这个“id”表时,脚本无法注册。我没有收到 ACTUAL 错误,但我在尝试登录后收到此消息“

很抱歉,出现错误,无法完成您对用户名(尝试在此处注册的用户名)的注册。
请稍后再试。”

当我尝试更改时会发生这种情况

CREATE TABLE users (
 username varchar(30) primary key,
 password varchar(32),
 userid varchar(32),
 userlevel tinyint(1) unsigned not null,
 email varchar(50),
 timestamp int(11) unsigned not null
);

到这里:

CREATE TABLE users (
 id int(11) NOT NULL 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
);

从收到此错误开始,我认为这与我的代码而不是 SQL 有关。我有 3 个影响注册的页面,register.php、process.php 和 session.php 我将发布所有 3 个的链接,以便任何人都可以看到“http://pastebin.com/5efyZdgF”(请忘记错误,我在开头拼错了 register.php)

如果有人可以提供帮助,我将非常感激,因为我没有机会完成这项工作。我确实非常了解 PHP,所以如果有人至少能指出我的错误,我很可能会从那里纠正它。

【问题讨论】:

    标签: php mysql sql registration


    【解决方案1】:

    这是因为 A_I 必须是整数(int)

    这是因为整数根据上表增加。如果这是varchar 或其他(不与数字相关)字母如何根据上表增加值?它不能..

    AI 用于最小化表中的重复行

    【讨论】:

      【解决方案2】:

      我不使用 MySQL,所以我快速浏览了文档。看起来语法类似于我使用的 redbrick。

      create table myTable (
      myTableId int not null auto_increment
      , more fields
      , constraint myTablePk primary key (myTableId)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-01-07
        • 1970-01-01
        • 1970-01-01
        • 2023-03-10
        • 1970-01-01
        • 1970-01-01
        • 2019-12-18
        • 1970-01-01
        相关资源
        最近更新 更多