PHP+;SQL查询:选择枚举值

PHP+;SQL查询:选择枚举值,php,mysql,enums,Php,Mysql,Enums,我在PHP执行SQL查询时遇到了一个奇怪的情况,也许有人可以解释一下: 我的问题是: "SELECT COLUMN_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = $table AND COLUMN_NAME = $column" 查询执行时应返回一个字符串:enum('a','B'[,'C'…])(就像从命令行运行查询时一样。$table和$column被传递给进行查询的函数,并且在我的测试用例中是正确的–它们分别以

我在PHP执行SQL查询时遇到了一个奇怪的情况,也许有人可以解释一下:

我的问题是:

"SELECT COLUMN_TYPE 
 FROM INFORMATION_SCHEMA.COLUMNS 
 WHERE TABLE_NAME = $table 
 AND COLUMN_NAME = $column"
查询执行时应返回一个字符串:
enum('a','B'[,'C'…])
(就像从命令行运行查询时一样。
$table
$column
被传递给进行查询的函数,并且在我的测试用例中是正确的–它们分别以表和列的形式存在。在这种情况下,让我们设置
$table='profile'
$column='gender'
,上面的SQL语句都是以表和列的形式存在的tement正在返回以下错误:

Unknown column 'profile' in 'where clause' in /registry/mysqldb.class.php on line 31
第31行是一个缓存函数,用于缓存查询直到需要时,或者在查询失败时触发错误。在其他情况下都可以正常工作。当发出请求时,我连接到正确的数据库


我的问题是:为什么将“profile”解释为列并导致错误?

可能是因为变量周围缺少引号。请尝试:

"SELECT COLUMN_TYPE
 FROM INFORMATION_SCHEMA.COLUMNS 
 WHERE TABLE_NAME = '$table' 
   AND COLUMN_NAME = '$column'"

可能是因为变量周围缺少引号。请尝试:

"SELECT COLUMN_TYPE
 FROM INFORMATION_SCHEMA.COLUMNS 
 WHERE TABLE_NAME = '$table' 
   AND COLUMN_NAME = '$column'"

嘎…在剪切、粘贴和撤消之间,我一定丢失了它们。我想知道它为什么起作用,然后突然不起作用。抱歉这个愚蠢的问题!嘎…在剪切、粘贴和撤消之间,我一定丢失了它们。我想知道它为什么起作用,然后突然不起作用。抱歉这个愚蠢的问题!