pyodbc を使用した Python のパラメーター化された 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 中国語 Web サイトの他の関連記事を参照してください。