Php sql查询中的输入变量

Php sql查询中的输入变量,php,mysql,sql,Php,Mysql,Sql,为了实现radius搜索,我编写了以下sql查询。这部分似乎不起作用。我认为这是一个语法错误 $statement=“选择商店、地址、电话、纬度、对数、zipcode、城市、州,(3959*acos(弧度(“$lat”)*cos(弧度(lat))*cos(弧度(log)-弧度(“$lng”)+sin(弧度(“$lat”)*sin(弧度(lat)))作为距离地理信息的距离,其中(zipcode='$search_text'或city='$search_text'或state='$search_t

为了实现radius搜索,我编写了以下sql查询。这部分似乎不起作用。我认为这是一个语法错误

$statement=“选择商店、地址、电话、纬度、对数、zipcode、城市、州,(3959*acos(弧度(“$lat”)*cos(弧度(lat))*cos(弧度(log)-弧度(“$lng”)+sin(弧度(“$lat”)*sin(弧度(lat)))作为距离地理信息的距离,其中(zipcode='$search_text'或city='$search_text'或state='$search_text')和(距离<'$radius')”;

$numberofstores=$resultstore=mysqli\u查询($conn,$statement)
您可以通过将WHERE距离更改为HAVING distance来解决这个问题,这是因为您不能在SQL WHERE子句中使用派生列别名。

如果是语法错误,为什么不添加错误度量?您应该了解准备好的语句。使用错误报告您不能在WHERE子句中使用派生列别名。Ei将“WHERE distance”改为“HAVING distance”,或者,更好的做法是,再次用手写方式写出整个距离公式