我想更新表'my_table'
中的字段,但它会报告:
ProgrammingError: (1064, 'You have an error in your SQL syntax; ...
PS:values
是一个字符串列表len(values) == len(fields)
sql 的表达式为:
'update my_table set field_a=\\'%s\\',field_b=\\'%s\\',field_c=\\'%s\\',field_d=\\'%s\\''
由于len(fields)
在运行程序时可能会发生变化,因此我使用以下代码:
field_str = ''
for field in fields:
field_str += (field + "='%s',")
field_str = field_str[: -1]
sql = "update %s set %s" % (my_table, field_str)
values = [current_response_dict[site][info_type] for site in site_list for info_type in self.all_info_type]
cursor.execute(sql, values)
conn.commit()
答案 0 :(得分:0)
'
是不必要的。你有一个没有where
- 条款的更新吗?
sql = "update %s set %s" % (my_table, ','.join('%s=%%s' % f for f in fields))
values = [current_response_dict[site][info_type] for site in site_list for info_type in self.all_info_type]
cursor.execute(sql, values)