MySQL вставляет синтаксическую ошибку в предварительно написанный скрипт - PullRequest
2 голосов
/ 28 августа 2011

Я использую модифицированную версию предварительно написанного скрипта.Это работает в других местах на сайте, но я не могу понять, что я пропустил здесь ...

    $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, на предмет правильного синтаксиса, который можно использовать рядом с 'http://www.xxxxxxxx.co.uk',' frgdr tr tr ',' 0 ')' в строке 1.*

(ошибка относится к последним 3 полям запроса)

Ответы [ 3 ]

10 голосов
/ 28 августа 2011
 "'".$HTTP_POST_VARS['section'].", ".

Отсутствует окончание цитаты

2 голосов
/ 28 августа 2011

Единственная глупая ошибка, которую вы допустили, это не публикация сгенерированного SQL.Чрезвычайно неразумное решение, которое вы приняли, - не выходить за пределы параметров POST.Вам повезло в том, что вы получили синтаксическую ошибку из одиночной кавычки в title, прежде чем какой-то шутник решил опубликовать title='; drop table cmsportfolio; -- '.См. здесь .

РЕДАКТИРОВАТЬ: Спарки указывает на опечатку, которая вызывает вашу непосредственную проблему.

0 голосов
/ 28 августа 2011

Я думаю, в imgthunb может быть одна кавычка ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...