各位高手请教大家一个问题:
<?php
if(isset($_POST[add])){
include("conn.php");
$sr=$_POST[sr];
//$sql="insert into vote(id,name,num)values('','$sr',0)";
$sql="insert into vote(name,num)values('$sr',0)";
mysql_query($sql);
header("location:xtwh.php");
}
?>
表结构
CREATE TABLE `vote` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `name` varchar(20) NOT NULL,
  `num` int(10) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=gb2312 AUTO_INCREMENT=26 ;上述程序中的ID设为自增,但是程序中的$sql执行$sql="insert into vote(id,name,num)values('','$sr',0)";插入不成功!!
但执行$sql="insert into vote(name,num)values('$sr',0)";时程序能正确的插入了!!
真不知道这是哪里出错了,请各位高手相助!

解决方案 »

  1.   

    自增是自动增加的意思,insert的时候无需指定值
      

  2.   

    $sql="insert into vote(id,name,num)values('default','$sr',0)";

    $sql="insert into vote(name,num)values('$sr',0)";id老是'',插入的了才怪了
      

  3.   

    "insert into vote(id,name,num)values(NULL,'$sr',0)";
      

  4.   

    表中的id字段是自增的,插入数据时不需要给id赋值
      

  5.   

    自增的字段在插入时,不需要你来设定它.
    直接
    $sql="insert into vote(name,num)values('$sr',0)";
    就可以了.
    更新的时候可以操作它,但也不能有重复的.
    就实际应用中来说,都是不需要去操作自增字段的,它只是对数据的一个索引标识,方便直接找到数据并操作.
    不然它的作用何在