2

重複の可能性:
Python で SQLite 変数を渡す

私のスクリプトには、クラス メソッドに値を渡す関数があります。この関数の仕事は、割り当てられたデータベースに、受け取った変数を入力することです。問題は、通常の文字列を扱っていないため、正しい構文がわからないということです。これが方法です。

def new_response(self, link_pattern, link, response, ref_id=""):
    self.db_cursor.execute('''INSERT INTO tb_memory VALUES 
    (%s, %s, %s, %s)''' % (ref_id, link_pattern, link, response))

最も適切な構文アプローチは何ですか?

4

1 に答える 1

2

文字列の書式設定を使用して SQL ステートメントを作成しないでください。文字列フォーマットを使用すると、プログラムは SQL インジェクション攻撃の影響を受ける可能性があります。'?'プレースホルダーを使用します。

def new_response(self, link_pattern, link, response, ref_id=""):
    self.db_cursor.execute('''INSERT INTO tb_memory VALUES 
    (?, ?, ?, ?)''', (ref_id, link_pattern, link, response))

のドキュメントを参照してくださいexecute

于 2012-12-19T06:48:23.793 に答える