我正在使用预先编写的脚本的修改版本。它可以在网站的其他地方使用,但我无法解决我在这里错过的内容......
$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个字段)
答案 0 :(得分:10)
"'".$HTTP_POST_VARS['section'].", ".
缺少结尾报价
答案 1 :(得分:2)
您所犯的唯一愚蠢错误就是不发布生成的SQL。您所做的极不明智的决定并不是逃避POST参数。你很幸运,因为在一些恶作剧者决定发布title
之前,title='; drop table cmsportfolio; -- '
中的单引号出现语法错误。请参阅here。
编辑: Sparky指出导致您眼前问题的拼写错误。
答案 2 :(得分:0)
我猜'imgthunb'可能只有一个引用...