0

我的网站上有一个表格供用户输入他们的 fname、sname、公司、电话、电子邮件,然后在提交时更新到数据库。我的数据库中还有一个字段用于唯一的用户 ID,以防止用户具有相同的姓名和公司等。提交我的表单时,如何在此字段中添加一个唯一编号,使其与已获取的字段相比 +1。目前只有 3 个用户 ID,所以我需要下一个输入的用户 ID 为 4,依此类推。

目前我有这个。

require_once('dbConnect.php');
//taken from a smarty template form.
$addForename = $_POST['forename'];
$addSurname = $_POST['surname'];
$addCompany = $_POST['company'];
$addContact = $_POST['contact'];
$addEmail = $_POST['email'];

public function addUser($addForename,$addSurname,$addCompany,$addContact,$addEmail)
{
    $sql = "INSERT INTO `Users` (`Forename`, `Surname`, `ComanyName`, `Phone`, `Email`) VALUES ('".$addForename."','".$addSurname."','".$addCompany."','".$addContact."','".$addEmail."')";
    $databaseAccess = new DatabaseConnect();
    try
    {
        $result = $databaseAccess->connect($sql, "add");
    }
   catch (Exception $e)
   {
       throw new Exception("Adding  User Failed !!!");
   }

   if ($result)
   {
       return 1;
   }
   else{return 0;}
}

谢谢

4

4 回答 4

2

如果您使用 phpmyadmin,当您使用“A_I”或 Auto_Increment 创建新列时应该有一个复选框。您必须检查它,然后它会计算您的条目。

于 2012-08-31T09:02:19.903 回答
1

auto_increment在数据库中将行创建为 an :

create table someName (ID int primary key auto_increment, col1 int ...);

然后,当您插入数据时,要么将其传递给 null,要么不要像这样插入该字段:

insert into someName (col1) values (3);

或者

insert into someName (ID, col1) values (null, 3);

您可以使用以下内容修改当前表:

ALTER TABLE someName MODIFY COLUMN ID INT NOT NULL AUTO_INCREMENT , ADD PRIMARY KEY (ID);
于 2012-08-31T09:01:11.237 回答
0

创建标识:

ALTER TABLE users ADD ID INT UNSIGNED 
       NOT NULL AUTO_INCREMENT, ADD PRIMARY KEY (ID);

并在您想要的地方启动自动增量

ALTER TABLE tbl AUTO_INCREMENT = 4;
于 2012-08-31T09:05:18.550 回答
0

创建一列将其设置为主键并自动递增。您甚至可以编写一个用于插入表的存储过程。这样您就不必每次都编写查询,也不必担心转义字符。如果您希望从存储过程中返回特定的否,请在存储过程中使用SCOPE_IDENTITY()

于 2012-08-31T09:05:50.123 回答