Heim >Datenbank >MySQL-Tutorial >Wie kann ich einen Tabellennamen sicher als Parameter in psycopg2 übergeben?
In psycopg2 kann das Erstellen von Abfragen mit dynamischen Parametern Probleme verursachen, wie im bereitgestellten Code gezeigt. Es wird dringend empfohlen, im angegebenen Code keine Zeichenfolgenverkettung zu verwenden.
Verwendung des psycopg2 SQL-Moduls
Psycopg2 bietet mit seinem in Version 2.7 eingeführten SQL-Modul eine Lösung. Dieses Modul hilft bei der dynamischen Generierung von Abfragen einschließlich Tabellennamenparametern. Die Syntax lautet wie folgt:
<code>from psycopg2 import sql # 示例:使用动态表名插入数据 cur.execute( sql.SQL("insert into {table} values (%s, %s)") .format(table=sql.Identifier('my_table')), [10, 20])</code>
Wichtigkeit der korrekten Parametrierung
Es ist wichtig zu beachten, dass die Verwendung des SQL-Moduls von psycopg2 der Python-String-Manipulation oder String-Parameter-Interpolation vorzuziehen ist. In der Dokumentation wird ausdrücklich vor der Verwendung dieser Methoden gewarnt, da sie Schwachstellen verursachen und die Datenbankintegrität gefährden können.
Weitere Informationen zum SQL-Modul finden Sie in der offiziellen Dokumentation: https://www.php.cn/link/9a0f86604fa1dc1686a0cad86a808a5c:
Das obige ist der detaillierte Inhalt vonWie kann ich einen Tabellennamen sicher als Parameter in psycopg2 übergeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!