$sql2 = "select * from productdetail where ProductID=".$ProductID." and OptionID=".$OptionID;
$rst2 = mysql_query($sql2);
$num2 = mysql_num_rows($rst2);
 if($num2!=0)
 {
                 $sql = "delete from productdetail where ProductID=".$ProductID." and OptionID=".$OptionID;
 $rst = mysql_query($sql);
 }
 $sql = "insert into productdetail (ProductID,OptionID,UpDatetime,Detail) values (".$ProductID.",".$OptionID.",'".$UpDatetime."','".$Detail."')";
 
  $rst = mysql_query($sql); 
说明:以上语句在本地执行没有问题,在虚拟主机的空间上执行的时候,可以执行delete 但执行不了insert语句。
其他表的insert语句都可以执行没有问题。
数据类型:ProductID    int
          OptionID     int
          Detail       text
          UpDatetime   datetime请各位高手帮忙看看这段代码有没有兼容性问题,是不是mysql版本的问题,如何修改。

解决方案 »

  1.   

    insert into productdetail (ProductID,OptionID,UpDatetime,Detail) values (35,1,'2009-12-24 2:10:02','仍然')另,我把别的都删了,只执行insert 语句也执行不了
      

  2.   

    看一下表结构,show create table productdetail。
      

  3.   

    估计是字符集的问题。你的insert比delete多的只是这个中文'仍然'先 mysql_query ("sel name 'gbk'");试一下。
    检查一下字符集。
    http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx
    MySQL 中文显示乱码
      

  4.   

    表:productdetail 
    数据类型: ID           int
               ProductID    int 
              OptionID    int 
              Detail      text 
              UpDatetime  datetime 没有提示任何错误。
      

  5.   

    SHOW CREATE TABLE tbl_name
      

  6.   

    show create table productdetail ;看一下你这个表的字符集设置。
      

  7.   

    insert into productdetail (ProductID,OptionID,UpDatetime,Detail) values (35,1,'2009-12-24 2:10:02','仍然')
    这一句直接到MYSQL命令行工具中试一下看看。
      

  8.   

    问题解决,实在抱歉,是我自己没弄清楚状况。原来我本地和远程的数据结构不一样。昨天在本地加了一个“updatetime”字段,远程没有这个字段。谢谢各位!