Php 搜索练习错误“;where子句中的未知列";

Php 搜索练习错误“;where子句中的未知列";,php,mysql,sql,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(

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

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\u名称
,它也能工作!您可以搜索小屋编号,但不能搜索姓名


我真的希望有一个同时搜索小屋编号或客户名称的搜索。

您正在尝试比较此查询中的编号或字符串。在比较数字(id)时,应使用equal。您需要使用引号,因为如果您输入一个字符串,它将尝试如下操作:
cott\u num=your\u 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());

向我们显示
pastrec
表的列名。cott_num在您的表中是整数?cott_num是整数,cus_name是varchar请注意,上面的代码以及下面Awlad Liton的答案可能会受到SQL注入漏洞的影响。cott_num在我的表中作为整数存在。如果我使用cott_num作为参数进行搜索,它可以搜索具有(例如)5的原始编号的数据,但是如果我使用文本作为参数(cus_name),它不会显示任何内容,只会导致上述错误。另外,我试过上面的代码,但返回的是相同的error@user3036014:你能试试我的第一个密码吗?在mysql服务器中运行回显查询。我输入了5作为搜索参数,这是从pastrec WHERE(
cott_num
=5)或(
cus_name
LIKE“%5%”)回显的SELECT*我尝试了字符串作为参数,这是从pastrec WHERE(
cott_num
=renz)或(
cus_name
LIKE“%renz%”)回显的SELECT*)您是否在sql server中运行了上述查询?是的,它返回的就是这个。顺便说一句,我使用数字时的第一个查询。它显示了数据。但在第二个查询中,显示where子句error