Python 中使用pyodbc 的參數化Select 語句
本題討論如何在迴圈中使用變數作為參數來執行一個 SELECT 語句名 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中文網其他相關文章!