mysql FUNCTION stores.ST_Intersects не существует

0

Я пытаюсь установить значение isInside, как будто пользователь geoLocation находится внутри одной из фигур внутри таблицы, я делаю этот запрос

function getNearMe( $lat = 0 , $lng = 0  , $withDistance = 120)
{

   try{ 
         $q = $this->api->pdo->prepare("SELECT * ,
                                        ( 3959 * acos( cos( radians($lat) ) * cos( radians( store_latitude ) ) * cos( radians( store_longitude ) - radians($lng) ) + 
                                        sin( radians($lat) ) *
                                         sin( radians( store_latitude ) ) ) ) AS distance,
                                         ST_Intersects(Point($lng,$lat),'gps')  AS isInside
                                        FROM stores 
                                        " . ( $withDistance == 0 ? "" : " HAVING distance < $withDistance " ) ." 
                                        ORDER BY distance
                                        ");

          $q->execute();

          return $q->fetchAll( PDO::FETCH_ASSOC );

       }catch( PDOException $e ){
        print_r($e);
       return array();
    }
}

ST_Intersects (точка ($ lng, $ lat), gps) AS isInside

вот таблица

Изображение 174551

но я получаю эту ошибку:

FUNCTION stores.ST_Intersects не существует

  • 0
    Ваш код подвержен внедрению SQL.
  • 0
    @RaymondNijland да, я знаю, что $ lng, $ lat и $ withDistance добавляются в привязки PDO
Теги:
geometry

1 ответ

0

Я нашел, что решение может помочь кому-то другому

MBRContains(gps,
GeomFromText('Point($lat $lng)')) AS isInside

Ещё вопросы

Сообщество Overcoder
Наверх
Меню