无法使用PHP变量列名来更新SQL中的列

时间:2013-09-01 08:57:18

标签: php mysql

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

$ROLLONO是未更新的列的名称。

6 个答案:

答案 0 :(得分:0)

你在魔术引号(“)中使用你的PHP变量。所以不需要保留。

同样在查询列名称中应该包含`或者没有。

如果列名不是int类型,则列名的值应为'或'。

删除“。”并且 '。添加'日期条件

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

答案 1 :(得分:0)

将日期放在引号中并在$ rollno:

之前设置正确的引号
mysql_query("UPDATE students SET ". $rollno ." = '1'
             WHERE Faculty_id = $id AND date = '$date'");

您在更新前有双引号:"

SET之后的单引号:'

这使您的查询不正确。

日期必须在引号中,否则将被视为具有最小值的整数。

答案 2 :(得分:0)

您在列名称周围使用单引号。你可能不需要它们,但如果你这样做,它们会使用反引号`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");

答案 3 :(得分:0)

  • 变量名称区分大小写。
  • 最好使用concat运算符(“。”)
  • 变量必须包含列的名称,而不是数字

答案 4 :(得分:0)

我认为你是动态使用列名,你想要:

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

答案 5 :(得分:-1)

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