используя строку в php в базу данных mysql - PullRequest
1 голос
/ 29 августа 2011

Я получаю строку, используя PHP, а затем пытаюсь поместить ее в свою базу данных (mySql).Я получаю сообщение об ошибке

В вашем синтаксисе SQL есть ошибка;проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы найти правильный синтаксис для использования рядом с 'material)' в строке 1.

Вот мой кодЯ распечатал заявление в php, и это правильно.

$description=$_POST["textField4"];

$description= addslashes($description);//found these two line using google
$description = mysql_real_escape_string($description);//neither seem to help.


$sql="INSERT INTO budget8000 (categories,subCategory, amount, date, description)
VALUES ($category,$subCategory, $amount, curdate(), $description )";

Ответы [ 2 ]

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

Правильный способ сделать это:

$description=mysql_real_escape_string($_POST["textField4"]);
...
//and so on for each an every field that you $_GET or $_POST.

$sql= "INSERT INTO budget8000 (categories,subCategory, amount, date, description)
VALUES ('$category','$subCategory', '$amount', curdate(), '$description' )";
//      ^         ^ these quotes are vital to prevent SQL-injection and errors.
// without them mysql_real_escape_string will not work!

См .: Как работает SQL-инъекция из комикса XKCD "Таблицы Бобби"?

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

Вам нужно использовать функцию php mysql_real_escape_string ()

$ description = mysql_real_escape_string ($ description);

PHP документация для mysql_real_escape_string

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