在mysql查询中使用变量作为列名

时间:2013-07-03 13:13:18

标签: php mysql

我试图改变这一点:

"SELECT username FROM $table WHERE username='$newName'"

进入这个:

"SELECT $column FROM $table WHERE $column='$newName'"

但是当我在其上使用or die()时,我收到一条错误消息,指出WHERE username='someNameHere'附近的语法不正确。替换列名称的正确方法是什么,假设这是错误的?

编辑:代码就是这样。这些值应该是正确的,因为我没有看到错误中的任何错误。

$sql = "SELECT $column FROM $table WHERE $column='$newName'";
$result = mysql_query($sql) or die( mysql_error());

2 个答案:

答案 0 :(得分:6)

像这样进行查询

$sql = "SELECT ".$column." FROM ".$table." WHERE ".$column."='".$newName."'"
BTW这是SQLinjection易受攻击的代码。您应该在查询中使用它们之前检查变量。您还应该开始使用mysqliprepared statements

答案 1 :(得分:1)

"SELECT ".$column." FROM ".$table." WHERE ".$column."=".$newName;

检查是否适合您。