搜索练习错误“where子句中的未知列”

时间:2014-01-13 05:13:49

标签: php mysql sql

当我偶然发现这个错误时,我一直在编写搜索练习

  

where子句

中的未知列

当我输入一个数字来搜索山寨号码时,它会一直返回,但如果我输入一个客户名称,则显示错误。

这是我的SQL查询:

         $raw_results = mysql_query("SELECT * FROM pastrec
        WHERE (`cott_num` LIKE $query) OR (`cus_name` LIKE '%".$query."%')") or die(mysql_error());

我知道我的查询中存在问题,但我不确定是什么。

更新

我已将cott_num省略为搜索参数,但它有效!您可以搜索名称但不能搜索数字。我已经颠倒了上面的技术,省略了cus_name,它也有效!你可以搜索山寨号,但你不能搜索名字。

我真的想要一个搜索山寨号码或客户名称的搜索。

1 个答案:

答案 0 :(得分:0)

您正在尝试比较此查询中的数字或字符串。当你比较数字(id)时,你应该使用相等的。你需要使用引号,因为如果你输入一个字符串,那么它会尝试像这样进行comapre:cott_num = your_string这会导致mysql出错。

$sql = "SELECT * FROM pastrec
                WHERE (`cott_num` = '$query') OR (`cus_name` LIKE '%".$query."%')";
echo $sql;

  $raw_results = mysql_query($sql) or die(mysql_error());