PHP + SQL 查询 : Selecting Enum Values

标签 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 被传递给进行查询的函数,在我的测试用例中是正确的——它们分别作为表和列存在。在这种情况下,让我们设置 $table = 'profile'$column = 'gender',上面的 SQL 语句返回以下错误:

Unknown column 'profile' in 'where clause' in /registry/mysqldb.class.php on line 31

第 31 行是一个缓存函数,用于缓存查询直到需要,或者在查询失败时触发错误。这在其他所有情况下都可以正常工作。发出请求时,我已连接到正确的数据库。

我的问题是:为什么“个人资料”被解释为一列并导致错误?

最佳答案

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

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

关于PHP + SQL 查询 : Selecting Enum Values,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7507286/

相关文章:

php - 电子邮件 .. 我应该能够这样做吗?

php - localhost http 500 内部服务器错误

java - 这个枚举是否违反了单一职责原则?

java - 使用枚举作为参数

c++ - 枚举元素限制

php - 变量和 preg_match PHP

javascript - 如何更改 css 属性显示以阻止 PHP 代码

php - 使用带有excel数据库的php计算生日

mysql - mysql存储函数中的未知列错误

MySQL:返回 Y 字前后的 X 个字