从Python插入MySQL查询的语法无效

2024-09-27 00:17:58 发布

您现在位置: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')

我对语法哪里出错感到困惑,因为下面的硬编码示例可以正常工作:

^{pr2}$

你能找出错误吗?在

或者,您能告诉我如何将参数传递给字段列表和值列表吗?在

非常感谢!在


Tags: name列表sqldatadatedef错误table
2条回答

这些三引号是python中表示字符串的一种方式。它们不应该是实际查询的一部分。在

另一方面,请确保您信任这种方法的输入。查找SQL Injection。在

\'"""INSERT INTO natgas (Date, UK) VALUES(\'2012-05-01 13:00:34\', \'59.900\')"""\' at line 1')

这显然不是vlaidsql命令。你需要去掉反斜杠,你可能在逃避你不该做的事

例如,三重引号在那里是不必要的。在

相关问题 更多 >

    热门问题