当我尝试将某些值插入表格时遇到此错误。 这是我的代码:
def tsx_insert(self, d_list):
for item in d_list:
query = """ INSERT IGNORE INTO tsx_first_insert(protocollo,procedura,oggetto,priorita,
tipo_richiesta,sottotipo_richiesta,emergenza,
richiesta,uo_richiedente,autore,scadenza_sla)
VALUES(%(protocollo)s,%(procedura)s,%(oggetto)s,%(priorita)s,%(tipo_richiesta)s,
%(sottotipo_richiesta)s,%(emergenza)s,%(richiesta)s,%(uo_richiedente)s,
%(autore)s,%(scadenza_sla)s)"""
values = item.values()
self.exec_query(query,values)
这里'exec_query'功能:
def exec_query(self, query, params):
try:
if self.connected is None:
self.connect()
self.cursor = self.connected.cursor()
self.cursor.connection.autocommit(True)
self.cursor.execute(query)
if self.cursor.description:
self.description = [d[0] for d in self.cursor.description]
self.rows = self.cursor.rowcount
self.sql_result = self.cursor.fetchall()
except MySQLdb.Error, e:
logging.error('Error {0}: {1}'.format(e.args[0], e.args[1]))
finally:
self.cursor.close()
错误是:“错误1064:您的SQL语法中有错误;请查看与您的MariaDB服务器版本对应的手册,以便在'%(protocollo)s,%(procedura)s附近使用正确的语法, %(oggetto)S,%(priorita)S,%(tipo_richiesta)类, '在第4行“
我无法弄清楚问题是什么。提前感谢您的帮助。
答案 0 :(得分:1)
您忘记在params
方法调用中提及self.cursor.execute()
字典,因此参数字符串保留在原位而不是替换。
尝试
self.cursor.execute(query, params)