当我偶然发现这个错误时,我一直在编写搜索练习
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
,它也有效!你可以搜索山寨号,但你不能搜索名字。
我真的想要一个搜索山寨号码或客户名称的搜索。
答案 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());