MySQL在预编写的脚本中插入语法错误

时间:2011-08-28 14:09:53

标签: php mysql syntax insert

我正在使用预先编写的脚本的修改版本。它可以在网站的其他地方使用,但我无法解决我在这里错过的内容......

    $insertQuery = "INSERT INTO cmsportfolio (status,title,imgurl,imgthumb,section,url,`desc`,type) VALUES (".
    "'".$HTTP_POST_VARS['status']."', ".
     "'".$HTTP_POST_VARS['title']."', ".
    "'".addslashes($HTTP_POST_VARS['imgurl'])."', ".
    "'".addslashes($HTTP_POST_VARS['imgthumb'])."', ".
    "'".$HTTP_POST_VARS['section'].", ".
    "'".addslashes($HTTP_POST_VARS['url'])."', ".
    "'".addslashes($HTTP_POST_VARS['desc'])."', ".
    "'".$HTTP_POST_VARS['type']."' )";


if ($result = $connector->query($insertQuery)){

    header('Location: ' . $_SERVER['PHP_SELF'].'?action=addsuccess');
    exit;

}else{
    echo "Error message = ".mysql_error(); 
    exit('<center>Sorry, there was an error saving to the database</center>');
}

我收到错误消息:

  

您的SQL语法有错误;查看与MySQL服务器版本对应的手册,以便在第1行“http://www.xxxxxxxx.co.uk”,“frgdr tr tr”,“0”附近使用正确的语法   抱歉,保存到数据库时出错

(错误是指查询的最后3个字段)

3 个答案:

答案 0 :(得分:10)

 "'".$HTTP_POST_VARS['section'].", ".

缺少结尾报价

答案 1 :(得分:2)

您所犯的唯一愚蠢错误就是不发布生成的SQL。您所做的极不明智的决定并不是逃避POST参数。你很幸运,因为在一些恶作剧者决定发布title之前,title='; drop table cmsportfolio; -- '中的单引号出现语法错误。请参阅here

编辑: Sparky指出导致您眼前问题的拼写错误。

答案 2 :(得分:0)

我猜'imgthunb'可能只有一个引用...