Py学习  »  DATABASE

Laravel MySQL语法错误或访问冲突

weaver • 6 年前 • 1717 次点击  
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'在第1行(sql:select*from users 其中存在(select*,*,(6371*acos(cos(radians(28.392200))\n*cos(radians( 土地增值 ))\ n*cos(弧度( lng )\ n-弧度(77.320801))\n+sin(弧度(28.392200))\n*sin(弧度( 土地增值 ))))作为距离 locations 在哪里? 用户 . location_id = 位置 . id 和(6371*acos(cos(radians(28.392200))\n*cos(radians)( 土地增值 ))\ n*cos(弧度( 液化天然气 )\ n-弧度(77.320801))\n+sin(弧度(28.392200))\n*sin(弧度( 土地增值 ))))<8.04672订购人 distance asc)和 用户 . deleted_at 为空)”,

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/38755
文章 [ 2 ]  |  最新文章 6 年前
katsarov
Reply   •   1 楼
katsarov    7 年前

将您的方法命名为scopersine()将是一件好事。 但不要使用MySQL。改用php。检查我的回答: https://stackoverflow.com/a/50040011/1262144

Thomas Van der Veen
Reply   •   2 楼
Thomas Van der Veen    7 年前

首先,如果你在这个平台上寻求帮助,下一次尝试更像一个问题。

其次,在查询中直接集成变量从来不是一个好主意。这将使您的查询容易被SQL注入。基本信息可以找到 here .

通过查看您的查询(在错误中),我们可以看到使用 * 通配符。

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