自动增量ID

时间:2013-11-08 08:43:58

标签: php automation

这是我想要将新数据插入数据库的查询。在此id之前使用旧系统自动,现在我通过php创建一个新表单。这是我的查询,现在我想要自动增加id。如何自动增加id。如果有人知道,请帮帮我。

$sql="INSERT INTO $tbl_name(id, name, icno, email, applyIntake_id, modeOfStudy_id, 
        choice1_id, dob, nationalityType, gender_id, race_id, highestEducation_id,
        address1, address2, postcode, city, state_id, permanent_address1,
        permanent_address2, permanent_postcode, permanent_city, permanent_state,
        telephoneNo, mobileNo)
    VALUES('$name', '$icno', '$email', '$id', '$applyIntake_id', '$modeOfStudy_id',
        '$choice1_id', '$dob', '$nationalityType', '$gender_id', '$race_id', 
        '$highestEducation_id', '$address1', '$address2', '$postcode', '$city', 
        '$state_id', '$permanent_address1', '$permanent_address2', 
        '$permanent_postcode', '$permanent_city', '$permanent_state', 
        '$telephoneNo', '$mobileNo')";
$result=mysql_query($sql);

4 个答案:

答案 0 :(得分:4)

尝试使用MYSQL DB ..

ALTER TABLE
    `TABLE_SCHEMA`.`TABLE_NAME` 
CHANGE COLUMN
    `ID` `ID` INT(6) NOT NULL 
AUTO_INCREMENT;

答案 1 :(得分:1)

好的,首先要做的一件事:你应该逃避你的参数See here

要解决您的问题:您可以将数据库中的字段定义为auto_increment,如果留空,会自动增加id。

答案 2 :(得分:1)

Amir你在上面的插入中有3个错误。

  1. 列计数匹配,但您尝试插入$ id
  2. 的#tbl_name(email)值
  3. 请将id字段设置为自动增量,答案在上面的帖子中。
  4. 我认为在准备PHP $ sql变量时你必须使用“。”作为字符串运算符,使用来自变量的数据获取正确的SQL INSERT语句 - 当前下面的INSERT将而不是您的名称变量$ name作为字符串插入到DB中。
  5. 例如:

    $ name ='汤姆'; $ email ='tom@o2.pl'

    $ sql =“插入表格(姓名,电子邮件)VALUES(”。$ name。“,”。$ email。“);”;

    然后使用以下插入但是应用上面的字符串连接示例 - 它应该工作:

    $sql="INSERT INTO $tbl_name(name, icno, email, applyIntake_id, modeOfStudy_id, 
        choice1_id, dob, nationalityType, gender_id, race_id, highestEducation_id,
        address1, address2, postcode, city, state_id, permanent_address1,
        permanent_address2, permanent_postcode, permanent_city, permanent_state,
        telephoneNo, mobileNo)
    VALUES('$name', '$icno', '$email', '$applyIntake_id', '$modeOfStudy_id',
        '$choice1_id', '$dob', '$nationalityType', '$gender_id', '$race_id', 
        '$highestEducation_id', '$address1', '$address2', '$postcode', '$city', 
        '$state_id', '$permanent_address1', '$permanent_address2', 
        '$permanent_postcode', '$permanent_city', '$permanent_state', 
        '$telephoneNo', '$mobileNo')";
    

    $结果= mysql_query($ SQL);

答案 3 :(得分:0)

ALTER TABLE document MODIFY COLUMN document_id INT AUTO_INCREMENT;

您的SQL可能无法正常工作有几个原因。首先,您必须重新指定数据类型(在本例中为INT)。此外,您尝试更改的列必须编入索引(它不必是主键,但通常是您想要的)。此外,每个表只能有一个AUTO_INCREMENT列。因此,您可能希望运行以下SQL(如果您的列未编入索引):

ALTER TABLE document MODIFY document_id INT AUTO_INCREMENT PRIMARY KEY;

您可以在MySQL文档中找到更多信息:http://dev.mysql.com/doc/refman/5.1/en/alter-table.html表示修改列语法,http://dev.mysql.com/doc/refman/5.1/en/create-table.html表示有关指定列的更多信息。