gpt4 book ai didi

python - Python/MySQL 组合的最佳转义字符策略是什么?

转载 作者:可可西里 更新时间:2023-11-01 06:52:59 25 4
gpt4 key购买 nike

这是我的查询。

cursor2.execute("update myTable set `"+ str(row[1]) +"` = \"'" + str(row[3]) +"'\" where ID = '"+str(row[0])+"'")

当行值包含双引号“some value”时失败。如何转义所有特殊字符?

最佳答案

这是一个例子:

import MySQLdb
column = str(MySQLdb.escape_string(row[1]))
query = "update myTable set %(column)s = %%s where ID = %%s" % dict(column = column)
cursor2.execute(query, [row[3], row[0]])

更新

这里是一个简短的评论:

column = str(MySQLdb.escape_string(row[1]))

对查询中的任何内容进行转义总是一个好主意。在这种情况下,我们动态添加列名,因此必须在执行查询之前对其进行转义。

query = "update myTable set %(column)s = %%s where ID = %%s" % dict(column = column) 

我在这里形成查询。我试图实现两件事:(1) 使用在上一行中声明的 column 变量填充列名形成查询 (2) 添加将在查询执行期间由实际参数填充的占位符.

片段 dict(column = column) 实际上是另一种创建字典 {'column': column} 的方法。使用 dict 可以做到这一点构造函数。我不想 填写其他占位符,所以我使用两个百分号 (%%) 将它们转义。

cursor2.execute(query, [row[3], row[0]])

最后执行查询。如果在执行之前打印查询,您将看到字符串 update myTable set column_name = %s where ID = %s

关于python - Python/MySQL 组合的最佳转义字符策略是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3549691/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com