2015-03-07 4 views
-2

Как можно представить переменную сессии в обычном режиме veriableСинтаксис Error: Что такое правильный синтаксис обновления PHP MySQL

$sql="update mark_list set ".$_SESSION['question_id']." ='2' where user_id=".$_SESSION['user_id']; 
mysqli_query($connection, $sql) or die(mysqli_error($connection)); 

возвращается ошибка:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax. 
+1

Какое имя столбца вы пытаетесь установить как «2»? – NaN

+0

Вы пытаетесь установить значение имени столбца 51 равным 2. Также обратите внимание на подготовленные заявления или PDO, поскольку то, что вы сейчас делаете, уязвимо для SQL-инъекций. – Neat

+0

Имя столбца nope от переменной сеанса, а значение столбца равно 2 – Sudhin

ответ

1

В этом случае вам нужно поставить свое имя столбца 51 в quotes используя `, потому что имя содержит только цифры:

$sql="update mark_list set `".$_SESSION['question_id']."` ='2' where user_id= ".$_SESSION['user_id']; 

Из Documentation:

  • Идентификаторы могут начинаться с цифры но если они не указаны, они могут состоять не только из цифр.
0

ли 51 вещественное поле таблицы? Вы должны установить значение поля таблицы, например example_field = "2", вместо того, чтобы изменять значение другого значения, которое уже находится в базе данных.

+0

yup 51 - это реальное поле таблицы – Sudhin

+0

Попробуйте добавить котировки вокруг переменной сеанса, а затем: '\" ". $ _ SESSION [ 'question_id']. "\" ' – lrd

Смежные вопросы