Синтаксическая ошибка или нарушение прав доступа для типа данных MySQL geometry - PullRequest
0 голосов
/ 17 января 2020

Я работаю с геометрией типа данных на MySQL. Я пытаюсь сделать запрос со страницы. Я получил ошибку.

Как исправить? Не могли бы вы помочь?

Ошибка здесь:

"Возникла исключительная ситуация при выполнении '

SELECT  t.`road_id`, t.`road_ref_num`, t.`chainage`, t.`road_name`,
        ST_AsGeoJSON(ST_Transform(t.`road_wkt`, ?::int)) as geom
    FROM  gis_ruralroads_t1 t
    WHERE  (t.road_ref_num LIKE ?)
      AND  (ST_Transform(ST_SetSRID(ST_MakeBox2D(ST_Point(?, ?),
                     ST_Point(?, ?)), ?), ST_Srid(t.`road_wkt`)) && t.`road_wkt`
           )

с параметрами [32648, "% 0806T1001%", 5579.905, 1088581.723, 1029359.857, 1650396.77, 32648]

SQLSTATE [42000]: синтаксическая ошибка или нарушение прав доступа: 1064 У вас есть ошибка в синтаксисе SQL; проверьте соответствующее руководство к вашей версии сервера MariaDB для правильного синтаксиса для использования рядом с ':: int)) как geom ОТ gis_ruralroads_t1 t WHERE (t.road_ref_num LIKE'% 0806T1001% 'в строке 1 "

Best, Loy

1 Ответ

0 голосов
/ 20 января 2020

Он указывает прямо на ::int. MySQL не имеет подобного синтаксиса. Просто удалите эти 5 символов.

В общем, вы можете верить, что целое число будет правильно подставлено, даже если добавлены кавычки:

ST_Transform(t.`road_wkt`, ?)

превращается в это после подстановки:

ST_Transform(t.`road_wkt`, '32648')

Апострофам не больно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...