Я работаю над сайтом, который должен передавать данные из формы на странице и использовать PHP для обновления таблицы учеников на сервере. Условие, над которым я сейчас пытаюсь работать, — это изменение данных, поэтому он должен иметь возможность обновлять данные на сервере, но это не так …
Будем весьма благодарны за любую помощь или совет, который вы можете предложить. Заранее спасибо.
Вот мой код:
<?php
date_default_timezone_set('America/New_York');
$connection = mysql_connect("hostaddress","DBname","password");
// Check connection
if (!$connection)
{
echo "Connection failed: " . mysql_connect_error();
}
else
{
//select table
mysql_select_db("DBname");
echo "Database Found! <br>";
$query = "UPDATE students
SET firstName = $_POST[firstName],
lastName = $_POST[lastName]
WHERE StudentID = $_POST[StudentID]";
$res = mysql_query($query);
if ($res)
{
echo "<p>Record Updated<p>";
}
else
{
echo "Problem updating record. MySQL Error: " . mysql_error();
}
}
mysql_close($connection);
?>
Я продолжаю получать эту ошибку:
База данных найдена!
Проблема с обновлением записи. Ошибка MySQL: у вас есть ошибка в вашем синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы найти правильный синтаксис для использования рядом с ‘lastName =, WHERE Stud’ в строке 2
П.С .: У меня уже есть таблица учеников, созданная с некоторыми данными. Я могу получить доступ к таблице и изменить ее с помощью терминала и идентичного запроса MySQL, подобного приведенному выше, но все равно не повезло. Кроме того, я специально изменил адрес хоста, имя базы данных и пароль в своем коде (на случай, если кто-то спросит).
Ouput of echo $query
UPDATE fall14_bmora013.students SET firstName = , lastName =
WHERE StudentID = 890
Очевидно, у вас есть синтаксическая ошибка (дополнительный ,
до WHERE
) в вашем UPDATE
утверждение, как указано ниже
UPDATE students SET firstName = $_POST[firstName],
lastName = $_POST[lastName], <-- remove this extra comma
WHERE StudentID = $_POST[StudentID]
РЕДАКТИРОВАТЬ:
Проверьте, действительно ли ваш элемент формы назван как firstName
а также lastName
? проверить орфографию Я сомневаюсь, что имена отличаются от того, что вы ссылаетесь в коде.
Вы написали это сами:
Ошибка MySQL: у вас есть ошибка в вашем синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы найти правильный синтаксис для использования рядом с ‘lastName =, WHERE Stud’ в строке 2
Выведите строку запроса, это не то, что вы ожидаете.
Постскриптум
Вам, вероятно, следует избегать ввода, чтобы избежать sql-injectiion.
Также обратите внимание, что вы не должны больше использовать функции mysql_.
прочитайте предупреждение на следующей странице:
http://php.net/manual/en/function.mysql-query.php
Однажды попробуй это …
$ query = «ОБНОВЛЕНИЕ студентов УСТАНОВКА firstName
= ‘ «$ _ POST [ ‘FirstName’].»‘,lastName
= ‘». $ _ POST [‘ lastName ‘].»‘ ГДЕ StudentID
= ‘». $ _ POST [‘ StudentID ‘].»‘ «;