conn.php 数据库连接
<?php
 $conn =  mysql_connect("localhost", "root","") or die("数据库连接错误");
 mysql_select_db("bbs",$conn);
 mysql_query("set names 'GBK'");//使用GBK中文编码;?>add.php操作页面
<?php 
if($_POST['submit']){  $sql="insert into message (id,user,title,content,lastdate)  values ('','$_POST[user]','$_POST[title]','$_POST[content]',now())";  mysql_query($sql);
  echo "发表成功"; }
?>  <form action="add.php" method="post">
  用户:<input type="text" size="10" name="user"/><br/>
  标题:<input type="text" name="title"/><br/>
  内容:<textarea name="content"></textarea><br/>
  <input type="submit" name="submit" value="发布留言"/>  </form>

解决方案 »

  1.   

    第一次莫名其妙的添加成功了,后来添加就没反映了。难道是我HTML代码问题?
      

  2.   

     mysql_query("set names 'GBK'");//使用GBK中文编码;
    mysql_query('set names gbk');记得gbk两边没引号
      

  3.   

    if($_POST['submit']) 是判断什么的?另外你SQL里的 _POST数组变量最好在外面做赋值 然后再来写SQL语句
    例如 $a=$_POST['WHAT']; 在插入数据库之前做一个测试判断POST过来的变量是否为空
    empty 如果不为空那么再赋值然后在插入前
    echo $Sql;
    exit();你就知道哪里有问题了
      

  4.   

    $sql="insert into message (id,user,title,content,lastdate) values ('','$_POST[user]','$_POST[title]','$_POST[content]',now())";这句应该没错啊
      

  5.   

    $sql="insert into message (id,user,title,content,lastdate) values ('default_id','$_POST[user]','$_POST[title]','$_POST[content]',now())";default_id处要有明确的id或者为default
      

  6.   

    你输出你的$sql,看看$_POST[title],$_POST[content]能不能获取到值。还有你数据库中各字段是什么类型?
      

  7.   

    把我说的输出 sql 然后到 mysql 执行一下这个语句 他就会提示你哪里有问题了. 另外打开php 的错误提示
      

  8.   

    mysql_query($sql) or die(mysql_error());需要随时检查可能出现的错误
      

  9.   

    echo $sql;点提交后页面提示
    insert into message (id,user,title,content,lastdate) values ('defualt_id','ssss','dddds','sssss',now()) 
      

  10.   

    如果你id设置了主键的话,我100%确定就是id没设置默认的关系
      

  11.   

    那块是default不是default_id,我那么写是为了提醒你
      

  12.   

    因该是数据库字段没设好。。id设为主键,auto_increment自动增长。  其他字段类型贴出来吧。
      

  13.   

     字段            类型             整理             属性      空     默认     额外     操作 
      id        tinyint(1)                                否      无                主键
      user      varchar(25) gb2312_chinese_ci             否      无                
      title     varchar(50) gbk_chinese_ci                否      无                
      content   tinytext    gbk_chinese_ci                否      无                
      lastdate  date                                      否      无                
      

  14.   

    id 要设置为 auto_increment
      

  15.   

    然后 取消掉 sql 里插入 id的部分
      

  16.   

    唉,楼主啊
    insert into message (id,user,title,content,lastdate) values (defualt,'ssss','dddds','sssss',now()) 
    看不见?
      

  17.   

    楼上说的很对!把id设为自增长,在你insert的时候不要再给id赋值。
    我感觉你第一次成功是将0或者1写入到这个表的id里了!然后后面的插入就变成针对表中已经存在的id进行插入这样就出错了!
    我建议你调试的时候再执行sql语句之前,把这条sql语句输出一下,然后粘到你的phpMyAdmin中或者其他的mysql管理工具中执行一下,看下能不能成功!
      

  18.   

    你的 id 是主键,但没有附加自动增量(auto_increment)属性
    所以你必须每次都插入唯一的编号,而不能像这样缺省 id 
    $sql="insert into message (id,user,title,content,lastdate) values ('','$_POST[user]','$_POST[title]','$_POST[content]',now())";
      

  19.   


    <?php
    $user=$_POST['user'];
    $title=$_POST['title'];//最好能处理下$title=htmlentities(trim($_POST['title']), ENT_QUOTES,'gbk');
    $content=$_POST['content'];
    $lastdate=time();//如果你的数据表中是存的秒数的话
    $sql="insert into message (user,title,content,lastdate) values ($user,$title,$content,$lastdate)";
    //echo $sql;
    //exit();
    mysql_query($sql);
    ?>