I have shapefiles which I converted to .csv format. I want to insert those into a MySQL Database table. I used ST_PolyFromText according to the MySQL reference manual.

## create table
cur.execute("CREATE TABLE `db1`.`table1` ("
  "`geometry` POLYGON NOT NULL,"
  "PRIMARY KEY (`Id`));")

sql_statement = "INSERT INTO table1(geometry) VALUES (ST_PolyFromText(%s,0))"

When I try to insert polygon values into the Database. I get the error 3037, 'Invalid GIS data provided to function st_polyfromtext.'

  1. How should I use MySQL Spatial Functions to insert my Polygons ??

My Polygon geometry column looks like this : enter image description here

  • Try replacing the geometry column with wkt column: df['wkt']=df.geometry.apply(lambda x: x.wkt) when exporting to csv. What if you open the csv and look at the incomplete row, is it complete in the csv? – BERA Mar 1 at 13:27
  • I tried it out , still I am getting the same error! – roshualine Mar 1 at 13:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.