Невозможно использовать имя столбца переменной PHP для обновления столбца в SQL

mysql_query("UPDATE students SET '. $rollno .' = '1' WHERE Faculty_id = $id AND date = $date"); 

$ROLLONO – это имя столбца, который не обновляется.

Related of "Невозможно использовать имя столбца переменной PHP для обновления столбца в SQL"

Поместите дату в кавычки и установите правильные котировки до $ rollno:

 mysql_query("UPDATE students SET ". $rollno ." = '1' WHERE Faculty_id = $id AND date = '$date'"); 

У вас есть двойная цитата перед UPDATE:

И одиночная цитата после SET:

Это делает ваш запрос неверным.

Дата должна быть в кавычках, иначе она будет рассматриваться как целое с минусами.

Вы используете свою переменную PHP в магических кавычках («). Поэтому не нужно ее хранить.

Также в имени столбца запроса должно быть либо завернуто `или ничего.

И значения для имени столбца должны быть в 'или', если они не являются типом int.

Удалить "." а также '. Добавить 'в поле даты

mysql_query("UPDATE students SET $rollno = '1' WHERE Faculty_id = $id AND date = '$date'");

Вы используете одинарные кавычки вокруг имени столбца. Вы, вероятно, не нуждаетесь в них, но если вы это сделаете, они используют backtick `caharacter вместо mysql.

 mysql_query("UPDATE students SET ". $rollno ." = '1' WHERE Faculty_id = $id AND date = $date"); 

или

 mysql_query("UPDATE students SET `". $rollno ."` = '1' WHERE Faculty_id = $id AND date = $date"); 
  • Имена переменных относятся к регистру.
  • Лучше использовать оператор concat (".")
  • Переменная должна содержать имя столбца, а не номер

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

 mysql_query("UPDATE students SET ". $rollno ." = '1' WHERE Faculty_id = $id AND date = $date"); 
 $sql = "UPDATE students SET rollno = 1 WHERE Faculty_id = $id AND date = $date " mysql_query($sql);