MySQL错误:“字段列表”中的未知列

时间:2011-08-02 00:57:07

标签: php mysql

每次尝试运行脚本时都会出现以下错误;

  

'字段列表'中的未知列'3624dfaf5f3429fc'

这是我的剧本,无论如何都是重要的部分;

$num1 = mt_rand(1, 2147483647);
$num2 = mt_rand(1, 2147483647); 
$valcode = dechex($num1).dechex($num2);
$query = "SELECT COUNT(*) FROM records WHERE valcode='$valcode'";
$result = mysql_query($query) or die("Query failed because ".mysql_error());

如果我将$valcode更改为整数($num1),则运行正常。另一方面,作为十六进制,它导致所述错误。有什么想法吗?

1 个答案:

答案 0 :(得分:3)

我怀疑该错误来自另一个查询,其中您没有用单引号括起代码。这将导致查询在整数时有效,但在没有引号括起的十六进制字符串时则不会。不带引号的字符串被解释为标识符(列名或别名)。

SELECT COUNT(*) FROM records WHERE valcode = 123

有效,将valcode与数字123进行比较,

SELECT COUNT(*) FROM records WHERE valcode = 3624dfaf5f3429fc

无效,因为它会尝试将valcode与名为3624dfaf5f3429fc的列或别名进行比较。我不相信您分享的代码会导致该错误消息。