我尝试为 template_list 数组中的值创建一个插入查询。这些值用于字段 template_name。
dir_template_list = ['template1', 'template2', 'template3']
sql = "INSERT INTO tbltemplate (template_name) VALUES(%s)" % (dir_template_list)
是否有使用字符串占位符创建此查询的简单/更容易的方法?
INSERT INTO tbltemplate (template_name) VALUES ('template1'),('template2'),('template3')
编辑:这是我实际的表结构
FIELD
-------
id int(6)
template_name VARCHAR(128)
请您参考如下方法:
首先,永远不要使用字符串格式来创建查询 - 否则您将面临 SQL 注入(inject)漏洞的风险,必须处理转义等问题。
正确的方法是对每一行使用单个查询并将数据作为参数传递:
sql = "INSERT INTO tbltemplate (template_name) VALUES (%s)"
for template in dir_template_list:
conn.query(sql, (template,))
要提高性能,您可能希望在事务中或使用准备好的语句执行此操作。
