2

This is query where i want to insert new data to database. Before this id is auto by using old system and now i make a new form by php. This is my query and now i want make auto increment id.How to make a auto increment id.Please Help me if anyone know.

$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

4 回答 4

4

试试这个 MYSQL DB..

ALTER TABLE
    `TABLE_SCHEMA`.`TABLE_NAME` 
CHANGE COLUMN
    `ID` `ID` INT(6) NOT NULL 
AUTO_INCREMENT;
于 2013-11-08T08:47:05.363 回答
1

好的,第一件事:你应该逃避你的参数见这里

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

于 2013-11-08T08:48:31.167 回答
1

阿米尔,您在上面的插入中有 3 个错误。

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

示例:

$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')";

$result=mysql_query($sql);

于 2013-11-08T10:55:29.307 回答
0

ALTER TABLE documentMODIFY COLUMN document_idINT AUTO_INCREMENT;

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

ALTER TABLE documentMODIFY document_idINT AUTO_INCREMENT 主键;

您可以在 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有关指定列的更多信息。

于 2013-11-08T08:53:26.583 回答