现在有个搜索的需求,后台代码为原生sql查询,要进行sql拼接
比如查询的条件有:开始时间,结束时间,操作人,商品名称
而且,操作人和商品名称需要模糊查询
切记: 1:“%”前面不要加空格,不然会影响模糊查询。
2.“.”前后需要有空格,不然语句会报错,因为语句拼接有误!比如:你需要这样的语句:and StartData >= ‘1553506641’ and EndData < ‘1553516641’ ,但是你语句中没有加空格,就会出现这样的语句:
3.拼接总的sql语句的时候,“where”后面一定要加上数字“1”,不然sql报错,语句成为这样:where and *****,这样肯定报错!
以下是sql拼接的方法:
$StartData = $_POST['StartData'] ;
$EndData = $_POST['EndData'] ;
$user_name = $_POST['user_name'] ;
$product_name = $_POST['product_name'] ;
$where = '';
if(!empty($StartData)){
$where .= " and StartData >= ' " . $StartData ."'";//where语句拼接
}
if(!empty($EndData)){
$where .= " and EndData < ' " . $EndData."'";//where语句拼接
}
if(!empty($user_name )){
$where .= " and user_name like '% " . $user_name ."%'";//where语句拼接
}
if(!empty($product_name )){
$where .= " and product_name like '% " . $product_name ."%'";//where语句拼接
}
$sql = "select * from orders where 1 ". $where . " order_by time asc";