Python 中使用 pyodbc 的参数化 Select 语句
本题讨论如何在循环中使用变量作为参数来执行 SQL SELECT 语句一个名为“吞吐量”的表。使用的具体参数因行的“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']) ):
最终工作代码
最终,用户使用以下代码片段成功解决了问题:
query = "SELECT * FROM Throughput WHERE DeviceName = '%s'" % data['Device Name'] try: for row in cursor.execute(query):
参数化语句
推荐的方法是使用参数化语句:
cursor.execute("SELECT * FROM Throughput WHERE DeviceName = ?", data['DeviceName'])
与之前的尝试相比,此方法具有多个优点:
以上是如何使用 pyodbc 在 Python 中安全地参数化 SQL SELECT 语句?的详细内容。更多信息请关注PHP中文网其他相关文章!