gpt4 book ai didi

python - pyodbc - 如何使用变量作为参数执行 select 语句

转载 作者:太空狗 更新时间:2023-10-29 17:54:00 27 4
gpt4 key购买 nike

我正在尝试遍历名为 Throughput 的表中的所有行,但针对特定的设备名称(我已将其存储在数据 ['DeviceName'] 中)。我尝试了以下方法,但它不起作用:

for row in cursor.execute("select * from Throughput where DeviceName=%s"), %(data['DeviceName']):

编辑:也试过这个但它不起作用:

for row in cursor.execute("select * from Throughput where(DeviceName), values(?)", (data['DeviceName']) ):

EDIT2:我的最终工作代码片段:

query = "select * from Throughput where DeviceName = '%s'" % data['Device Name']
try:
for row in cursor.execute(query):

最佳答案

您还可以 parameterize声明:

...
cursor.execute("select * from Throughput where DeviceName = ?", data['DeviceName'])
...

这是一个更好的方法,原因如下:

  • 防止 SQL 注入(inject)(无论使用参数化 SQL 还是动态 SQL,您都应该始终验证用户输入)
  • 您不必担心用单引号转义 where 子句值,因为参数是单独传递给数据库的
  • SQL 准备一次,查询的后续执行使用准备好的语句而不是重新编译

关于python - pyodbc - 如何使用变量作为参数执行 select 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9518148/

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