Ошибка синтаксиса SQL / распознавание символов - PullRequest
0 голосов
/ 23 ноября 2011

когда я публикую что-то в своей HTML-форме, например, в поле имени, я ввожу:

'John', i am getting the following error:

Ошибка в запросе:.

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Smith',Address_Line_1='rtuy657tr',Address_Line_2='',City='leicester',Postcode='L' at line 1

Я знаю, что это как-то связано с функцией mysql_real_escape_string (), но как бы я использовал ее для вставки в БД. Я запустил функцию:

function db_insert_preparation(){



}


$con = mysql_connect("localhost","root","");

if (!$con)
{
die('Could not connect: ' . mysql_error());
}

mysql_select_db("project1", $con);

Вот где его нужно использовать:

$sql2 = "INSERT INTO `".$table_name."` (`Group`, `Date_Of_Birth`, `Gender`, `Title`, `First_Name`, `Last_Name`, `Address_Line_1`, `Address_Line_2`, `City`, `Postcode`, `Contact_No`, `Email`, `Additional_Comment`, `Upload_File`) VALUES ('".db_insert_preparation($group)."','".$_POST[dateofbirth]."','".$_POST[gender]."','".$_POST[title]."','".$_POST[firstname]."','".$_POST[lastname]."','".$_POST[address1]."','".$_POST[address2]."','".$_POST[city]."','".$_POST[postcode]."','".$_POST[contactno]."','".$_POST[email]."','".$_POST[note]."','".$filename."' )";

Ответы [ 2 ]

1 голос
/ 23 ноября 2011

Оператор вставки SQL уязвим для внедрения SQL.Если одно из значений POST содержит двойную кавычку " или символ новой строки, оператор будет поврежден и возникнут синтаксические ошибки.Убедитесь, что вы избежали всего, что было предоставлено пользователем с mysql_real_escape_string().

0 голосов
/ 23 ноября 2011

использовать функцию mysql_real_escape_string для mysql_real_escape_string($_POST[firstname']). Infact сделать это на всех ваших переменных поста, прежде чем передать его в SQL.

...