Search code examples
phpmysqlcodeignitermysql-spatial

Invalid GIS data provided to function st_geometryfromtext in MySQL


Here is my error:

Error Number: 3037

Invalid GIS data provided to function st_geometryfromtext.

Here is my code:

SELECT ST_Within(ST_GEOMFROMTEXT('POINT(12.971201 077.652038)'), 
  ST_GEOMFROMTEXT('POLYGON((13.517837674890684 76.453857421875),(13.838079936422464 77.750244140625),(14.517837674890684 79.453857421875),(13.517837674890684 76.453857421875))')) As geoFenceStatus

Solution

  • Note that if you want to wrap each set of coordinates with their own () like you have done in your query, you need to be using mysql 5.7.9+ the earlier versions do not support it. But that is not all, there is another error. mysql polygons have to be closed

    SELECT ST_GEOMFROMTEXT('POLYGON((13.517837674890684 76.453857421875,13.838079936422464 77.750244140625,14.517837674890684 79.453857421875,13.517837674890684 76.453857421875,13.517837674890684 76.453857421875))')
    

    And also note that (( and )) is the correct syntax