#python #mysql #spatial #mysql-connector #spatial-data
#python #mysql #пространственный #mysql-connector #пространственные данные
Вопрос:
Используя Mysql Connector и Python, я пытаюсь передать простейшую форму пространственных данных (точечный тип данных) в мою базу данных MySQL. При использовании mysql connector функция ‘execute’ в Option1 работает, тогда как та же команда в Option2 не работает, выдавая ошибку «У вас ошибка в синтаксисе SQL».
Не могли бы вы поделиться какими-либо мыслями, почему опция 2 «mycursor.execute (sql, val)» выдает ошибку?
import mysql.connector
from Functions import *
mydb = mySqlConnection()
mycursor = mydb.cursor()
Latitude=5.245 # Values are random
Longitude=1.66 # Values are random
Location = "ST_GeomFromText('POINT(" str(Latitude) " " str(Longitude) ")')"
#OPTION 1 - WORKS
sql = "INSERT INTO test (Location) VALUES (" Location ")"
mycursor.execute(sql)
#OPTION 2 - DOES NOT WORK
sql = "INSERT INTO test (Location) VALUES (%s)"
val = (Location)
mycursor.execute(sql, val)
mydb.commit()
Любые идеи будут действительно оценены. Заранее большое спасибо.
С наилучшими пожеланиями, Алекс
Комментарии:
1. Какое
%s
значение имеет синтаксис вставки варианта 2?2.
%s
Представляют значение, проходящее через параметр val. Пожалуйста, обратитесь к примеру по ссылке ниже dev.mysql.com/doc/connector-python/en /…3. На самом деле, мне было интересно, какое значение было переведено
%s
. Каким было полное сообщение об ошибке?