错误"检查与你的MySQL服务器版本相对应的手册,以获得正确的语法来使用附近的SQL "在php


Error "check the manual that corresponds to your MySQL server version for the right syntax to use near on SQL LIKE" on php

似乎不能使用这个,总是有这个错误。有人能帮忙吗?

  • 搜索查询失败:您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以便在第10行'n'
  • 中''WHERE des'n't't'tLIKE ''%Hgfddfhbb''''附近使用正确的语法

版本:5.5.44

$search = $json['search'];
        $sql = 
        "SELECT des, lat, lng,
            ( 6371 * acos( cos( radians($lat) ) * 
            cos( radians( lat ) ) * 
            cos( radians( lng ) - radians($lng) ) + 
            sin( radians($lat) ) * 
            sin( radians( lat ) ) ) ) 
        AS distance 
        FROM problem 
        HAVING distance < 5
        WHERE des
        LIKE '%$search%'";

如果你使用aggregate函数,那么你必须使用HAVING,否则WHERE工作良好。如果你密切关注错误

''WHERE

使用正确的语法

就在WHERE子句前面,那只是HAVING

此外,如果您打算在WHERE子句中使用HAVING,则需要将HAVING移到WHERE之后。

那么你的查询将看起来像

$search = $json['search'];
    $sql = 
    "SELECT des, lat, lng,
        ( 6371 * acos( cos( radians($lat) ) * 
        cos( radians( lat ) ) * 
        cos( radians( lng ) - radians($lng) ) + 
        sin( radians($lat) ) * 
        sin( radians( lat ) ) ) ) 
    AS distance 
    FROM problem 
    WHERE des
    LIKE '%$search%'
    HAVING distance < 5 ";

希望这对你有用

看起来是字符问题。尝试在$SQL

中添加addslashes()