尝试执行以下操作时:
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,'您的SQL语法中有错误...附近: \'“”“INSERT INTO natgas(日期,英国)价值观(\'2012-05-01 13:00:34 \',\ '59 .900 \')”“” \ '在第1行')
我对语法错误的地方感到困惑,因为下面的硬编码示例运行正常:
def postUKnatgastoMySQL(date, UKnatgas):
cursor = conn.cursor ()
cursor.execute("""INSERT INTO natgas (Date, UK)VALUES(%s, %s)""", (date, UKnatgas))
你能发现错误吗?
或者,你能告诉我如何将参数传递给字段列表以及值列表吗?
非常感谢!
答案 0 :(得分:1)
这些三引号是一种在python中表示字符串的方法。它们不应该是实际查询的一部分。
另一方面,请确保您相信这种方法的输入。查看SQL Injection
。
答案 1 :(得分:0)
\'“”“INSERT INTO natgas(日期,英国)价值观(\'2012-05-01 13:00:34 \', \ '59 .900 \')“”\“在第1行'')
这显然不是一个vlaid SQL命令。你需要从那里获得反斜杠,你可能正在逃避你不应该的东西。
三重引号例如肯定是不必要的。