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

Php 在mysql查询中使用变量作为列名,php,mysql,Php,Mysql,我正试图扭转这一局面: "SELECT username FROM $table WHERE username='$newName'" 为此: "SELECT $column FROM $table WHERE $column='$newName'" 但是当我在上面使用或die()时,我得到一个错误,即在WHERE username='someNameHere'附近有不正确的语法。假设列名是错误的,那么替换列名的正确方法是什么 编辑:代码就是这样。这些值应该是正确的,因为我在错误中没有看到任

我正试图扭转这一局面:

"SELECT username FROM $table WHERE username='$newName'"
为此:

"SELECT $column FROM $table WHERE $column='$newName'"
但是当我在上面使用
或die()
时,我得到一个错误,即在
WHERE username='someNameHere'
附近有不正确的语法。假设列名是错误的,那么替换列名的正确方法是什么

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

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

检查一下这是否对您有效。

这样进行查询

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

顺便说一句,这是SQLinjection易受攻击的代码。在查询中使用变量之前,应该先检查这些变量。另外,你应该开始使用并向我们展示你的代码,我不会告诉你“当我在上面使用或死亡()时”。这应该行得通。您确定您的变量包含期望值吗?
echo$sql显示?请停止使用已弃用的
mysql\u*
扩展,切换到
PDO
mysqli\u*
,开始使用准备好的语句,并确保扩展中没有空格、引号或反勾号variables@RocketHazmat啊,谢谢,在此之前,
$table
部分被覆盖了一些行,但我一直专注于
$column
部分。
$sql = "SELECT ".$column." FROM ".$table." WHERE ".$column."='".$newName."'"