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服务器版本对应的手册,以了解使用接近“,(6371acos(cos(radians(28.392200))\ncos(radians)的正确语法( lat
))\ncos(ra)在第1行(sql:selectfrom) users
存在的位置(选择,,(6371acos(cos(弧度(28.392200))\ncos(弧度( lat
))\ncos(弧度)( lng
)\n-弧度(77.320801))\n+sin(弧度(28.392200))\nsin(弧度( lat
))))作为距离 locations
哪里 users
. location_id
= locations
. id
和(6371acos(cos(弧度(28.392200))\ncos(弧度( lat
))\ncos(弧度)( lng
)\n-弧度(77.320801))\n+sin(弧度(28.392200))\n*sin(弧度( lat
))))<8.04672订货人 distance
asc)和 users
. deleted_at
为空)“,
2条答案
按热度按时间9fkzdhlc1#
最好将方法命名为scopersine()。但是不要用mysql来做这个。改用php。请在此处查看我的回答:https://stackoverflow.com/a/50040011/1262144
nmpmafwu2#
首先,下一次,如果你在这个平台上寻求帮助,试着制定一个更像问题的公式。
其次,在查询中直接集成变量从来不是一个好主意。这将使您的查询对sql注入具有漏洞。基本知识可以在这里找到。
通过查看您的查询(在错误中),我们可以看到您将使用
*
通配符。