在 python 中进行单个插入查询

Bob*_*Bob 1 python

我试图为template_list数组中的值创建一个插入查询。这些值用于 field template_name

dir_template_list = ['template1', 'template2', 'template3']
sql = "INSERT INTO tbltemplate (template_name) VALUES(%s)" % (dir_template_list)
Run Code Online (Sandbox Code Playgroud)

是否有使用字符串占位符创建此查询的简单/更简单的方法?

INSERT INTO tbltemplate (template_name) VALUES ('template1'),('template2'),('template3')
Run Code Online (Sandbox Code Playgroud)

编辑:这是我的实际表结构

FIELD   
-------
id             int(6)         
template_name  VARCHAR(128) 
Run Code Online (Sandbox Code Playgroud)

Thi*_*ter 5

首先,永远不要使用字符串格式来创建查询——否则你将面临 SQL 注入漏洞的风险,必须处理转义等问题。

正确的方法是对每一行使用单个查询并将数据作为参数传递:

sql = "INSERT INTO tbltemplate (template_name) VALUES (%s)"
for template in dir_template_list:
    conn.query(sql, (template,))
Run Code Online (Sandbox Code Playgroud)

为了提高性能,您可能希望在事务中或使用准备好的语句执行此操作。