从 Python 向 MySQL 数据库插入行时出错
Error when inserting row into MySQL database from Python
我正在尝试使用 Python 更新一个空的 mySQL 数据库。
这是我收到的错误:
pymysql.err.InternalError: (1416, 'Cannot get geometry object from data you send to the GEOMETRY field')
这是有问题的代码:
try:
with connection.cursor() as cursor:
# Create a new record
sql = "INSERT INTO `projects` (`name`, `country`, `activation_date`, `active`) VALUES (%s, %s, %s, %s)"
cursor.execute(sql, ('Nate', 'USA', '2016-06-23 09:11:32', '1'))
connection.commit()
finally:
connection.close()
这是 table 在数据库中的样子(它是空的):
您似乎在使用 MySQL 类型 linestring
来表示字符串,而在 MySQL 中,表示字符串的正确类型是 text
或 varchar(<some_length>)
。 linestring
是几何线的表示,如您所见:https://dev.mysql.com/doc/refman/5.7/en/gis-linestring-property-functions.html
要解决此问题,只需将 name
和 country
的列类型更改为 varchar(<some-length>)
或 text
。参见:http://dev.mysql.com/doc/refman/5.7/en/char.html
我正在尝试使用 Python 更新一个空的 mySQL 数据库。
这是我收到的错误:
pymysql.err.InternalError: (1416, 'Cannot get geometry object from data you send to the GEOMETRY field')
这是有问题的代码:
try:
with connection.cursor() as cursor:
# Create a new record
sql = "INSERT INTO `projects` (`name`, `country`, `activation_date`, `active`) VALUES (%s, %s, %s, %s)"
cursor.execute(sql, ('Nate', 'USA', '2016-06-23 09:11:32', '1'))
connection.commit()
finally:
connection.close()
这是 table 在数据库中的样子(它是空的):
您似乎在使用 MySQL 类型 linestring
来表示字符串,而在 MySQL 中,表示字符串的正确类型是 text
或 varchar(<some_length>)
。 linestring
是几何线的表示,如您所见:https://dev.mysql.com/doc/refman/5.7/en/gis-linestring-property-functions.html
要解决此问题,只需将 name
和 country
的列类型更改为 varchar(<some-length>)
或 text
。参见:http://dev.mysql.com/doc/refman/5.7/en/char.html