【发布时间】:2019-02-10 23:31:57
【问题描述】:
public static function rsine($coordinates)
{
return '(6371 * acos(cos(radians(' . $coordinates['latitude'] . '))
* cos(radians(`lat`))
* cos(radians(`lng`)
- radians(' . $coordinates['longitude'] . '))
+ sin(radians(' . $coordinates['latitude'] . '))
* sin(radians(`lat`))))';
}
输出:
"message": "SQLSTATE[42000]: 语法错误或访问冲突:1064 您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,了解在 '* 附近使用的正确语法,( 6371 * acos(cos(radians(28.392200)) \n * cos(radians(
lat)) \n * cos(ra' at line 1 (SQL: select * fromuserswhere exists (select *, *, (6371 * acos(cos(弧度(28.392200)) \n * cos(弧度(lat)) \n * cos(弧度(lng) \n - 弧度(77.320801)) \n + sin(弧度( 28.392200)) \n * sin(radians(lat)))) AS 距离locations其中users.location_id=locations.idand (6371 * acos(cos(radians(28.392200) )) \n * cos(弧度(lat)) \n * cos(弧度(lng) \n - 弧度(77.320801)) \n + sin(弧度(28.392200)) \n * sin(弧度(lat)))) distance asc) andusers.deleted_atis null)",
【问题讨论】:
-
你如何使用
rsine()? -
$coordinates = ['latitude' => '28.392200', 'longitude' => '77.320801']; $rsine = Location::rsine($coordinates);