本地调试着好好的。。传到虚拟主机上就插不进数据了主要语句如下$sql = "insert into cb_guestbook(id,uname,email,msg,ip,posttime,ischeck)
values(NULL,'$uname','$email','$msg','$ip','$posttime','1')";
       if(mysql_query($sql)) echo "插入成功";就是这一句,上下我都调过了。。变量取得很正常就是怎么插都插不进去。。本地环境插的进去。
搞了好长时间不知道怎么办了,。大家帮我看看

解决方案 »

  1.   

    $sql = "insert into cb_guestbook(uname,email,msg,ip,posttime,ischeck)
    values('$uname','$email','$msg','$ip','$posttime','1')";
      

  2.   

    $sql = "insert into cb_guestbook(id,uname,email,msg,ip,posttime,ischeck)
    values(NULL,'$uname','$email','$msg','$ip','$posttime','1')";数据库中id为primary key,而你却设置成null,这条语句是错的,所以根本插入不进去
      

  3.   

    我插文章的时候这句是对的
    $sql = "insert into cb_article(tid,cid,title,text,author,ischeck,click,posttime)
    values(NULL,'$cid','$title','$editor1','若非零落','1','1','$posttime')";
    此处的tid和上面的id是一个设置。自动增长 主键
      

  4.   

    这是整个post文件,帮忙看看<?php 
    include("h.php");
    include("inc/conn.php");
    $action=$_GET['action'];
    if($action=="savemsg")
    {
               $uname = $_POST['uname'];
               $email=$_POST['email'];
       $msg=$_POST['msg'];
       $msg=stringFormat("$msg");
       $qq=$_POST['qq'];
       $ip=GetIp();
       $posttime=MyDate(1);
       echo $posttime."-".$ip."-".$uname."-".$email."-".$msg."-".$qq;//输出正常
       $sql = "insert into cb_guestbook(id,uname,email,msg,qq,ip,posttime,ischeck)
    values(null,'$uname','$email','$msg','$qq','$ip','$posttime','1')";
           if(mysql_query($sql)) echo "插入成功";//无法插入
    }
    ?>
      

  5.   

    但凡auto_increment一律不要写在sql语句中,让其自动。
    我怀疑你的$posttime是不是不对改成now() ?
      

  6.   

    按照7L的post文件没有任何提示直到输出post参数值那边一切正常。
      

  7.   

    嗯,以后会注意的。
    MyDate()是我自己写的一个函数function MyDate($c)
    { date_default_timezone_set('Asia/Shanghai'); 
    if($c==1)
          return date('Y-m-d H:i:s'); 
    else
    if($c==2)
      return date('Y-m-d');
    }
    posttime取值输出正常。
      

  8.   

    http://maxover.web-117.com/guestbook.php
    这个是留言本的地址,大家给看看。。
    我在后台提交文章的提交的好好的。。留言就是提交不上去。post文件的代码就是7L的代码去掉其中的id
    结果很迷茫大家帮忙看下。。是不是主机的问题。。
      

  9.   

    使用以下语句找错
    $sql="你的查询语句"; 
    $result = mysql_query($sql) or trigger_error(mysql_error().$sql);  
      

  10.   

    http://maxover.web-117.com/guestbook.php
    你可以看一下首页的文章显示很正常,用的是一个db连接而且db连不上的话应该会显示错误的挖。。可是啥都没有。不知道是不是主机的问题
      

  11.   

    你是用var_dump($result)看结果的吗?
      

  12.   

    能具体点吗?我是直接echo $result。。没有结果、
      

  13.   


    哇咔咔,我看到返回的错误了用的句子是 echo var_dump($result);
    返回的信息是bool(false)  什么意思。。
      

  14.   

    false表示mysql_query插入没有成功,建议检查一下是否真的连上数据库了。
      

  15.   

    连上了代码在这////////////////当前页面提交记录//////////////  我是放在当前页提交的
    $action=$_GET['action'];if($action==save)
    {
       
           //检查是否有提交记录
       if(isset($_POST['submit']))
    {
    if($dbh=mysql_connect("$db_host:$db_port","$db_user","$db_password")) echo "连接成功!"; else echo "连接未成功!";
    if (mysql_select_db("$db_name")) echo "数据库选择成功!";else echo "连接未成功!";
               $uname = $_POST['uname'];
               $email=$_POST['email'];
       $msg=$_POST['msg'];
       $msg=stringFormat("$msg");
       $qq=$_POST['qq'];
       $ip=GetIp();
       $posttime=MyDate(1);
               mysql_query("set names gb2312");
               $sql = "insert into cb_guestbook(uname,ischeck)
    values('$uname',1)";
    $result = mysql_query($sql) or trigger_error(mysql_error().$sql);
    echo "222222".var_dump($result);
                 mysql_close();//关闭MySQL连接提交的数据还没有js控制。。大家可以试一下http://maxover.web-117.com/guestbook.php
    按照上面代码最后输出      连接成功 数据库连接成功 bool(false) 2222222222
      

  16.   

    嗯。在插入那句之前我用echo测试过,那几个串都可以正常的输出。
      

  17.   

    检查一下linux库里的字段是否和你插入的一致,注意大小写。
      

  18.   

    我模拟了你的数据库结构,程序没有问题,你看过apache中的error日志吗?日志中有提示吗?
      

  19.   

    $result = mysql_query($sql) or die(mysql_error());
    如果你
    $result = mysql_query($sql) or trigger_error(mysql_error().$sql);
    var_dump($result);
    输出 bool(false) 只能说明sql语句是错误的
      

  20.   

    页面前加:
    error_reporting(E_ALL ^ E_NOTICE);
    貌似服务器将错误屏蔽了,看不到详细的错误。
      

  21.   

    跟你说了,只要在你的执行插入的语句后加上错误处理就知道是怎么回事了
    ....
    $result = mysql_query($sql) or die(mysql_error());
      

  22.   

    echo $sql;出你的语句,然后再直接在mysql中执行,我想是你的语有问题~~
      

  23.   

    我平常的做法是:先echo $sql;然后去phpmyadmin运行这个$sql,如果有出错提示,就好办了,看提示应该就可以知道哪里出错的。
      

  24.   

    检查你数据库的版本,你数据库ischeck是整形,你的sql语句这个是字符
      

  25.   

    將sql語句輸出來.
    跟著拷貝到phpmyadmin中執行.如果成功.說明數據庫連接有問題,
    如果失敗 說明sql語句有問題.
    跟著自己用phpmyadmin點擊插入,給每個行添加內容,得到添加的sql語句 跟著拷貝到php頁面中.進行變量替換.
      

  26.   

    各位各位快来。。重大发现
    这句代码直接放到页面的时候可以正常插入数据。
    $sql="INSERT INTO `cb_guestbook` ( `id` , `posttime` , `uname` , `email` , `qq` , `ip` , `ischeck` , `msg` , `reply` , `replytime` , `title` ) VALUES (NULL , '1988123456', '陈亚超', '[email protected]', '123456', '10.10.10.10', '1', '卧槽看看神恶魔', '看啊看你', '', '')";
    而这样就不行了
    $sql="INSERT INTO `cb_guestbook` ( `id` , `posttime` , `uname` , `email` , `qq` , `ip` , `ischeck` , `msg` , `reply` , `replytime` , `title` ) VALUES (NULL , '$posttime', '$uname', '$email', '$qq', '$ip', '1', '$msg', '', '')";
      

  27.   

    好的,问题解决了,,谢谢大家,新手不容易,还望大家理解。。语句是这样的,
    现在学会了一种方法,就是只用mysql里面的语句,那样最准确。再次谢谢大家。
    $sql="INSERT INTO `cb_guestbook` ( `id` , `posttime` , `uname` , `email` , `qq` , `ip` , `ischeck` , `msg` , `reply` , `replytime` , `title` ) VALUES (NULL , '$posttime', '$uname', '$email', '$qq', '$ip', '1', '$msg', '', '','')";