sql表字段如下 代码是这样写的 
<?php 
include("conn.php");
include("head.php");
if ($_POST['submit']){
$sql ="INSERT INTO user(id,name,pw,bord,mail,tel,home,nic,date)".
"values('','$_POST[name]','$_POST[pw]','$_POST[bord]','$_POST[mail]','$_POST[tel]',''$_POST[home]','$_POST[nic]',now())";
mysql_query($sql);
echo "注册成功";
}
?><form action="reg2.php" method="post" enctype="application/x-www-form-urlencoded">
用户:<input type="text" name="name" /><br />
密码:<input type="password" name="pw" /><br />
确认:<input type="password" name="pw" /><br />
生日:<input type="text" name="bord" /><br />
邮箱:<input type="text" name="mail" /><br />
手机:<input type="text" name="tel" /> <br />
主页:<input type="text" name="home" /><br />
呢称:<input type="text" name="nic" />该选项你可以选择以后填写<br />
<input type="reset" name="pw" />
<input type="submit" name="submit" value="注册" />
</form>
</body>
</html>
求解

解决方案 »

  1.   

    $sql ="INSERT INTO user(name,pw,bord,mail,tel,home,nic,date)".
    "values('$_POST[name]','$_POST[pw]','$_POST[bord]','$_POST[mail]','$_POST[tel]',''$_POST[home]','$_POST[nic]',now())";
      

  2.   

    另外将id 的tinyint类型换成int
      

  3.   

    1.你的ID是自增 所以不需要在SQL里画蛇添足了
    2.int 和 tinyint 类型的区别
    int
    从 -2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647) 的整型数据(所有数字)。存储大小为 4 个字节。int 的 SQL-92 同义字为 integer。tinyint
    从 0 到 255 的整型数据。存储大小为 1 字节。显而易见.
      

  4.   

    另外  如果mysql的字段排序在文档写入过程中与代码顺序不相符是否有影响
      

  5.   

    nic字段输入中文是否应该更换为text类型
      

  6.   

    不需要,你可以将你的sql字句输出一下。 
    echo $sql; 看每个字段与你数据库中是否一致。enctype="application/x-www-form-urlencoded"  //这句没用吧。
      

  7.   

    $sql ="INSERT INTO user(id,name,pw,bord,mail,tel,home,nic,date)".
    "values('','$_POST[name]','$_POST[pw]','$_POST[bord]','$_POST[mail]','$_POST[tel]',''$_POST[home]','$_POST[nic]',now())";
    mysql_query($sql);这里明显多了一个单撇号,看到了么?