Проблемы с синтаксисом запроса на обновление MYSQL - PullRequest
0 голосов
/ 19 апреля 2011

В настоящее время я пытаюсь обновить конкретную запись в своей базе данных, однако, хотя я тщательно проверил синтаксис, Chrome сообщает мне, что я где-то ошибаюсь.

Любой совет будет принят с благодарностью

$title = $_POST["title"];
$alttext = $_POST["alttext"];
$description = $_POST["description"];
$price = $_POST["price"];
$id = $_POST["ID"];
$insertQuery = "UPDATE cmsproducts SET Title = '$title', Alt_Text = '$alttext', Source = '$target_path', Description = '$description', Price = $price WHERE ID = $id";

// Save the form data into the database 
if ($result = $connector->query($insertQuery)){

// It worked, give confirmation
echo '<center><b><span style="color: #FF0000;">Product added to the database</span></b></center><br /><br />';

}else{

// It hasn't worked so stop. Better error handling code would be good here!
echo('<center>Sorry, there was an error saving to the database</center>');
echo "<center><b>File Name:</b> ".$target_path."<br/>";
die(mysql_error());


}

Я попытался выполнить запрос без переменных, чтобы проверить, не была ли это проблема, но он все еще выдает ошибку:

Извините, произошла ошибка при сохранении в базе данных. Ошибка вваш синтаксис SQL;проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы найти правильный синтаксис для использования рядом с 'test, Source = .. / images / Pictures /, Description = Это тестовое изображение test' в строке 1

Ответы [ 2 ]

3 голосов
/ 19 апреля 2011

Всегда избегать пользовательского ввода (mysql_real_escape_string) или использовать PDO и назначать параметры. Кажется, переменная $alttext содержит кавычки или другие специальные символы. Например,

$title = mysql_real_escape_string($_POST["title"]);
$alttext = mysql_real_escape_string($_POST["alttext"]);
$description = mysql_real_escape_string($_POST["description"]);
$price = mysql_real_escape_string($_POST["price"]);
$id = mysql_real_escape_string($_POST["ID"]);
$insertQuery = "UPDATE cmsproducts SET Title = '$title', 
   Alt_Text = '$alttext', Source = '$target_path',
   Description = '$description', Price = '$price' WHERE ID = '$id'";
1 голос
/ 19 апреля 2011

Кажется, вы не избегаете кавычек, так как в вашем столбце Description должна быть одна кавычка. Используйте mysql_real_escape_string, чтобы избежать кавычек.

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