При попытке выполнить следующие действия:Неверный синтаксис INSERT INTO MySQL запрос из Python
def postToMySQL(date,data,date_column_name,data_column_name,table):
cursor = conn.cursor()
sql = "\"\"\"INSERT INTO " + table + " (" + date_column_name + ", " + data_column_name + ") VALUES(%s, %s)" + "\"\"\"" #+ ", " + "(" + date + ", " + data + ")"
cursor.execute(sql,(date,data))
Я получаю эту ошибку:
_mysql_exceptions.ProgrammingError: (1064, 'You have an error in your SQL syntax... near: \'"""INSERT INTO natgas (Date, UK) VALUES(\'2012-05-01 13:00:34\', \'59.900\')"""\' at line 1')
Я недоумевали, где синтаксис является неправильным, потому что следующий пример жесткого кодирования работает нормально:
def postUKnatgastoMySQL(date, UKnatgas):
cursor = conn.cursor()
cursor.execute("""INSERT INTO natgas (Date, UK)VALUES(%s, %s)""", (date, UKnatgas))
Можете ли вы определить ошибку?
Альтернативно, не могли бы вы рассказать мне, как передавать параметры в список полей, а также список значений?
Большое спасибо!
А, блестящий! теперь работает: sql = "INSERT INTO" + table + "(" + date_column_name + "," + data_column_name + ") VALUES (% s,% s)" Я немного слышал о SQL-инъекции. (пока), но есть ли легкая альтернатива этому подходу? – user578582
[parameteris e] (http://bobby-tables.com/python.html) ваш запрос – mata