错误:SQL语法中有错误;查看与MySQL服务器对应的手册

时间:2015-06-16 06:15:07

标签: php mysql mysqli

获取代码错误

  

WHERE client_id LIKE'23'注意:未定义的变量:check1_res in   /srv/users/serverpilot/apps/.../public/client/billing/service.php on   第68行错误:您的SQL语法有错误;检查手册   对应于您的MySQL服务器版本,以获得正确的语法   在第1行'WHERE client_id LIKE'23'附近使用

代码

$search=checkRequest('search');
$type=checkRequest('type');
$search_key=checkRequest('term');

if($search == 'id'){
    $mysearch = "WHERE `client_id` LIKE '$search_key'";
}elseif($search == 'tech'){

}else{
    //$where = "`id` LIKE '$search_key'";

}
echo $mysearch;
$service_lookup = "SELECT * FROM `$billingdb`.`service` ORDER BY entry_date_u $mysearch";
$service = $conn->query($service_lookup);

我已经尝试过,它在phpmyadmin中运行搜索的回声,它可以工作......

3 个答案:

答案 0 :(得分:0)

where子句位于order by子句之前。而不是

$service_lookup = "SELECT * FROM `$billingdb`.`service` ORDER BY entry_date_u $mysearch";

你应该

$service_lookup = "SELECT * FROM `$billingdb`.`service` $mysearch ORDER BY entry_date_u";

答案 1 :(得分:0)

你的语法错了。 Order by必须在必须使用的地方之后:

$service_lookup = "SELECT * FROM `$billingdb`.`service` $mysearch ORDER BY entry_date_u ";

有关SQL SELECT语法的详细信息,请参阅mysql documentation

此外,您应该了解准备好的陈述。

答案 2 :(得分:0)

<强>问题:

您的查询顺序错误。

解决方案: WHERE应该出现在ORDER BY之前:

$service_lookup = "SELECT * FROM `$billingdb`.`service` $mysearch ORDER BY entry_date_u";

订单是:

SELECT..
FROM...
WHERE...
GROUP BY...
HAVING...
ORDER BY...