ホームページ >データベース >mysql チュートリアル >psycopg2 でテーブル名をパラメータとして安全に渡すにはどうすればよいですか?
psycopg2 では、提供されたコードに示されているように、動的パラメーターを使用してクエリを構築すると問題が発生する可能性があります。指定されたコードでは文字列連結を使用しないことを強くお勧めします。
psycopg2 SQL モジュールの使用
Psycopg2 は、バージョン 2.7 で導入された SQL モジュールを使用したソリューションを提供します。このモジュールは、テーブル名パラメータを含むクエリを動的に生成するのに役立ちます。その構文は次のとおりです:
<code>from psycopg2 import sql # 示例:使用动态表名插入数据 cur.execute( sql.SQL("insert into {table} values (%s, %s)") .format(table=sql.Identifier('my_table')), [10, 20])</code>
正しいパラメータ化の重要性
Python 文字列操作や文字列パラメーター補間ではなく、psycopg2 の SQL モジュールを使用することが好ましいことに注意することが重要です。ドキュメントでは、これらの方法を使用すると脆弱性が生じ、データベースの整合性が損なわれる可能性があるため、使用しないよう明示的に警告しています。
SQL モジュールの詳細については、公式ドキュメントを参照してください: https://www.php.cn/link/9a0f86604fa1dc1686a0cad86a808a5c:
以上がpsycopg2 でテーブル名をパラメータとして安全に渡すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。