我的查询丢失了这个错误。谁能明白为什么?
$query = "SELECT * FROM Units WHERE ID = `$uniqueUnits[a]`";
'where子句'
中的未知列''
答案 0 :(得分:5)
两个问题。
您正在使用反引号来分隔字符串。反引号分隔字段,因此MySQL认为你试图给它一个列名。
错误消息表明,实际上,它认为是列名的值为空。因此,您的值$uniqueUnits[a]
可能已被破坏,或未正确插值。
您应该执行以下操作:
Interpolate your variables明确地使用“复杂语法”来确保字符串正确形成;
检查 $query
的值,以便了解正在发生的事情:
print $query;
使用实际引号来分隔字符串:
$query = "SELECT * FROM Units WHERE ID = '{$uniqueUnits[a]}'";
// ^ quote
// ^ PHP variable interpolation
答案 1 :(得分:3)
试
$query = "SELECT * FROM Units WHERE ID = '$uniqueUnits[a]'";
^--- ^---
反引号用于转义保留字,因此mysql将变量的内容转换为字段名。
答案 2 :(得分:0)
因为显然$ uniqueUnits [a]解析为空字符串。并且在数据库中没有这样的列。
答案 3 :(得分:0)
尝试使用{}
围绕您的数组,如下所示:
$query = "SELECT * FROM Units WHERE ID = `{$uniqueUnits[a]}`";
另外,列ID
实际上在您的表中吗?