laravelmysql语法错误或访问冲突

siotufzp  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(403)
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 为空)“,

9fkzdhlc

9fkzdhlc1#

最好将方法命名为scopersine()。但是不要用mysql来做这个。改用php。请在此处查看我的回答:https://stackoverflow.com/a/50040011/1262144

nmpmafwu

nmpmafwu2#

首先,下一次,如果你在这个平台上寻求帮助,试着制定一个更像问题的公式。
其次,在查询中直接集成变量从来不是一个好主意。这将使您的查询对sql注入具有漏洞。基本知识可以在这里找到。
通过查看您的查询(在错误中),我们可以看到您将使用 * 通配符。

select
    *
from
    users
where
    exists (
        select
            *,
            *, <-- This will throw a syntax error.
            (6371 * acos(co ... the rest of the distance calculation

相关问题