提示的语法错误行如下:$DbLink->query("INSERT INTO message(id,nick,sayman,say,attr,m_time) VALUES('".session_id()."','$chat_nick','所有人','<a href=JavaScript:parent.userClick("$chat_nick")>$chat_nick</a>光临聊天',2,".time().")");
请高手指点。谢谢!!!

解决方案 »

  1.   

    把这个语句打印出来,弄到mysql里看看实际结果。。
      

  2.   

    VALUES('".session_id()."','$chat_nick','所有人','<a href=JavaScript:parent.userClick("$chat_nick")>$chat_nick</a>光临聊天',2,".time().")")
    这里面有引号语法错误
      

  3.   

    <a href=JavaScript:parent.userClick("$chat_nick")>$chat_nick</a>光临聊天该转义的字符没转义,把上面那些字符串用mysql_escape_string转义下再放进去执行。
      

  4.   

    太郁闷了,使用了mysql_escape_string后还是报错。
      

  5.   

    $DbLink->query("INSERT INTO message(id,nick,sayman,say,attr,m_time) VALUES('".session_id()."','$chat_nick','所有人','<a href=JavaScript:parent.userClick(".$chat_nick.")>$chat_nick</a>光临聊天',2,".time().")");注意那两个红点
      

  6.   

    $str1 = mysql_escape_string("<a href=javascript:parent.userClick(\'$chat_nick\');>$chat_nick</a>光临聊天室");
    $DbLink->query("INSERT INTO ".DB_MSG_TABLE." (nick,sayman,say,attr,m_time) VALUES ('$chat_nick','所有人',$str1,2,'".time()."')");运行报错:
    Database error: Invalid SQL: INSERT INTO message (nick,sayman,say,attr,m_time) VALUES ('abc','所有人',abc光临聊天室,2,'1321342211')
    MySQL error: ()
    Session halted.
      

  7.   

    应该是mysql数据库连接失败。你检查下数据库连接有无问题?
      

  8.   

    $str1是字符串需要在两边加引号的
      

  9.   

    在$str1两边加引号后报其它错误:
    Parse error: syntax error, unexpected T_VARIABLE in D:\WAMP\Apache2.2\htdocs\chat\check.php on line 6464行就是上面那个代码:
    $DbLink->query("INSERT INTO ".DB_MSG_TABLE." (nick,sayman,say,attr,m_time) VALUES ('$chat_nick','所有人',"$str1",2,'".time()."')"); 
      

  10.   

    一般就是打印出来你的 sql 语句,在客户端上执行,看结果是不是正确,如果正确 查看一下数据库连接是不是正确
      

  11.   

    其它几张表格都可以插入值,就这段代码不能正常运行,问题到底出在哪里???
    与环境有关系吗?
    WIN7下的 Apache2.2.19+PHP5.2.17+MYSQL5.5.15
      

  12.   

    表结构发出来.
    环境有关系的只有Linux 和Win的区别 
      

  13.   

    表结构如下:
    CREATE TABLE message (
      id int(11) NOT NULL auto_increment,
      nick varchar(16) NOT NULL default '',
      sayman varchar(16) NOT NULL default '',
      say varchar(255) NOT NULL default '',
      attr tinyint(1) NOT NULL default '0',
      m_time int(11) NOT NULL default '0',
      UNIQUE KEY id (id),
      KEY m_time (m_time),
      KEY sayman (sayman),
      KEY nick (nick)
    ) ;
      

  14.   

    试试这样:$chat_nick='mike';
    $sql="INSERT INTO message(id,nick,sayman,say,attr,m_time) VALUES('".session_id()."','".$chat_nick."',
    '所有人',
    '<a href=JavaScript:parent.userClick(\"".$chat_nick."\")>".$chat_nick."</a>光临聊天',
    2,".time()."
    )";
    $DbLink->query($sql);
      

  15.   

    还是报错:Database error: Invalid SQL: INSERT INTO message(id,nick,sayman,say,attr,m_time) VALUES('e0313m9ecgoqttssvj2gjptd74','mike','所有人','mike光临聊天',2,1321345341)
    MySQL error: ()
    Session halted.
      

  16.   

    把你最终的SQL语句输出比较修改成INSERT INTO `message` (`nick`,`sayman`,`say`,`attr`,`m_time`) VALUES ('abc','所有人','abc光临聊天室',2,1321342211);然后测试一下.这个是在linux 下的写法.win下也是通用的.
      

  17.   

    真是没道理,上面的那段代码:INSERT INTO `message` (`nick`,`sayman`,`say`,`attr`,`m_time`) VALUES ('abc','所有人','abc光临聊天室',2,1321342211);
    在客户端可以运行,但修改后到PHP中还是报错。
    修改后代码:$DbLink->query("INSERT INTO `message` (`nick`,`sayman`,`say`,`attr`,`m_time`) VALUES ('abc','所有人','abc光临聊天室',2,1321342211)");
    运行报错:
    Database error: Invalid SQL: INSERT INTO `message` (`nick`,`sayman`,`say`,`attr`,`m_time`) VALUES ('abc','所有人','abc光临聊天室',2,1321342211)
    MySQL error: ()
    Session halted.
      

  18.   


    $DbLink->query("INSERT INTO ".DB_MSG_TABLE." (nick,sayman,say,attr,m_time) VALUES ('$chat_nick','所有人','$str1',2,'".time()."')"); 
      

  19.   

    引用 13 楼 duqiangwu 的回复:在$str1两边加引号后报其它错误:
    Parse error: syntax error, unexpected T_VARIABLE in D:\WAMP\Apache2.2\htdocs\chat\check.php on line 6464行就是上面那个代码:
    $DbLink->query("INSERT INTO ".DB_MSG_TABLE." (nick,sayman,s……$DbLink->query("INSERT INTO ".DB_MSG_TABLE." (nick,sayman,say,attr,m_time) VALUES ('$chat_nick','所有人','$str1',2,'".time()."')"); 
    试过了还是报错。错误如下:Database error: Invalid SQL: INSERT INTO message (nick,sayman,say,attr,m_time) VALUES ('123','所有人','123光临聊天室',2,'1321347834')
    MySQL error: ()
    Session halted.
      

  20.   

    病急乱投医吧 修复一下数据表。另外将php重新装一下 或者换个版本.别纠结了 我这里都可以正常工作的SQL语句如果你的代码上没问题那就不应该再在上面折腾了 换个思路