Запрос на обновление не работает, но код выглядит нормально - PullRequest
0 голосов
/ 04 марта 2019

Вот строка запроса, которую я использую, я пробовал много разных итераций ...

if (!mysqli_query($db_connection,'UPDATE `questions` SET 
`question`='.$question.', `answer1`='.$answer1.', `answer2`='.$answer2.', 
`answer3`='.$answer3.', `answer4`='.$answer4.', `rationale`='.$rationale.', 
`resources`='.$resources.' WHERE `question_id`='.$id))
            {
                echo("Error description: " . mysqli_error($db_connection));
            }

это ошибка, которую я получаю:

Описание ошибки: Выесть ошибка в вашем синтаксисе SQL;проверьте правильность синтаксиса в руководстве, соответствующем версии вашего сервера MySQL.

Я пробовал использовать одинарные кавычки, двойные кавычки без `и с.Кажется, ничего не работает.

Ответы [ 3 ]

0 голосов
/ 04 марта 2019

Попробуйте это:

$query = mysqli_query($db_connection,"UPDATE `questions` SET question`='{$question}',`answer1`='{$answer1}', `answer2`='{$answer2}', `answer3`='{$answer3}', `answer4`='{$answer4}', `rationale`='{$rationale}', `resources`='{$resources}' WHERE `question_id`=".$id);
if ($query)
{
   echo("Error description: " . mysqli_error($db_connection));
}
0 голосов
/ 04 марта 2019

Прежде всего, как говорится в комментариях, подготовленные заявления - это путь.Вы открыты для SQL-инъекции.

Во-вторых, что касается сообщения об ошибке mysql, похоже, что в конце вашего запроса вы пропускаете ни одну кавычку.WHERE question_id='.$id.Также вычеркните строку запроса, и вы заметите, что в вашем запросе нет одинарных кавычек вокруг ваших параметров.Вы используете одинарные кавычки для создания строки запроса, но не для параметров запроса.Используйте двойные кавычки для строки запроса и одинарные кавычки для параметров:

"UPDATE `questions` SET 
`question`='".$question."', `answer1`='".$answer1."', `answer2`='".$answer2."', 
`answer3`='".$answer3."', `answer4`='".$answer4."', `rationale`='".$rationale."', 
`resources`='".$resources."' WHERE `question_id`="'.$id."'"
0 голосов
/ 04 марта 2019

Это не случай использования одинарных или двойных кавычек, но выполнение обоих правильно, вам нужно заключить строки в двойные кавычки и открыть и закрыть конкатенацию с одиночными значениями, например, 'answer' = "'. $ Variable.'",..... Тогда кавычки становятся частью вашей строки.

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