python - 在我们需要手动构建查询的情况下如何使用查询参数?
问题描述
我正在使用 Python 2 并具有以下代码:
with conn.cursor() as cursor:
info("Updating {} records".format(len(records_to_update)))
for record in records_to_update:
query = "UPDATE my_table SET "
params_setters = []
# Process all fields except wsid when updating
for index, header in enumerate(DB_COLUMNS_IN_ORDER[1:]):
if record[index] is not None:
params_setters.append("{} = '{}' ".format(header, record[index]))
query += " , ".join(params_setters)
query += " WHERE id = '{}'".format(record[0])
cursor.execute(query)
如何在此处使用查询参数进行转义,而不必在以下位置手动进行:
params_setters.append("{} = '{}' ".format(header, record[index]))
解决方案
如果我理解你的问题,你想使用准备好的陈述。如果您使用的%s
是用于表示查询参数的驱动程序(SQLite 使用?
),则:
with conn.cursor() as cursor:
info("Updating {} records".format(len(records_to_update)))
params = []
for record in records_to_update:
query = "UPDATE my_table SET "
params_setters = []
# Process all fields except wsid when updating
for index, header in enumerate(DB_COLUMNS_IN_ORDER[1:]):
if record[index] is not None:
params_setters.append("{} = %s ".format(header))
params.append(record[index])
query += " , ".join(params_setters)
query += " WHERE id = %s"
params.append(record[0])
cursor.execute(query, params)
推荐阅读
- javascript - 这些 Microsoft 文档在 JS 文件中包含 JSX 是否错误?
- reactjs - 如何从状态中获取数据
- r - 如何在 R 中提取纹理属性(Haralick)?
- qt - QML 树视图工具提示
- javascript - 尝试将事件从 iframe 推送到 Google Analytics
- c# - 我们可以在有和没有 jsonbody 的情况下重载 API
- javascript - 使用js移动对象时过渡不起作用
- python - 如何在 python 正则表达式中使用前瞻查找每个匹配项?
- javascript - 状态改变时报错【渲染方法应该是props和state的纯函数】
- arrays - 我可以将数组对象推送到 mongodb 上的空数组吗?(使用去)