Не работает UPDATE записи в БД MySQL

257
22 января 2017, 17:18

Есть окно редактирования анкетных данных пользователя, в нем есть кнопка, по нажатию на которою должны обновляться данные пользователя в БД MySQL

Есть отдельный кусок кода для идентификации пользователя, ID которого заносится в PHP-сессию:

$_SESSION['user_ID']

А это кусок кода для определения нажатия кнопки и последующего обновления записи в БД:

if(!empty($_POST['update']))
{
$update=mysql_query("
                    UPDATE Users u SET u.Type=6 WHERE u.user_ID=".$_SESSION['user_ID']."
                    ");
}

Собственно этот-то кусок кода и не работает, вернее не передается значение, хранящееся в сессии, поскольку проверка прямого объявления переменной в цикле запись обновляет прекрасно, например вот так:

if(!empty($_POST['update']))
{
$user_ID=12345;
$update=mysql_query("
                    UPDATE Users u SET u.Type=6 WHERE u.user_ID=$user_ID
                    ");
}

Сначала я думал, что проблема в кавычках, т.е. в типе данных переменной $user_ID, но следующая проверка показала "Integer":

echo $get=gettype($user_ID);

После я начал использовать PHP-сессию и var_dump() говорит, что ID пользователя туда передается, но вот обновление самой записи по нажатию кнопки не происходит?!

Уж и не знаю, что еще предположить..

Заранее спасибо за ваши комментарии!

Answer 1
  1. попробуйте для начала использовать проверку if( isset($_POST['update']) )

  2. обрабатывайте переменные перед запросом в базу данных, формируйте сначала запрос в отдельной переменной и потом отправляйте в mysql_query

  3. в запросе самом (в базу данных) если не ошибаюсь ошибка с "Users u", возможно вы забыли присваивание через "as" -> "Users as u" ?

READ ALSO
Смысл тестового задания

Смысл тестового задания

Дорогие форумчане, получил тестовое задание такого видаНе могу понять нескольких вещей:

269