変数を使用して Python で SQL ステートメントを実行する方法
P粉725827686
P粉725827686 2023-08-21 16:40:37
0
2
425
<p>次の Python コードがあります: </p> <pre class="brush:py;toolbar:false;">cursor.execute("INSERT INTO table VALUES var1, var2, var3,") </pre> <p>ここで、<code>var1</code>は整数、<code>var2</code>および<code>var3</code>は文字列です。 </p> <p>Python で変数名をクエリ テキストの一部にせずに変数名を記述するにはどうすればよいですか? </p>
P粉725827686
P粉725827686

全員に返信(2)
P粉781235689

異なる Python DB-API 実装では、異なるプレースホルダーが使用できるため、どのプレースホルダーを使用しているかを確認する必要があります。たとえば (MySQLdb を使用):

リーリー

または (Python 標準ライブラリの sqlite3 を使用):

リーリー

または他のメソッド (VALUES の後に、(:1, :2, :3) を使用するか、「名前付きスタイル」(:fee, : fie、:fo) または (%(fee)s, %(fie)s, %(fo)s)、この場合、2 番目のパラメーターが渡されるときに辞書を使用する必要があります。 execute関数に)。使用している DB API モジュールの paramstyle 文字列定数を確認し、 http://www.python.org/dev/peps/pep-0249/paramstyle を参照してください。すべてのパラメータの受け渡し方法を理解してください。

いいねを押す +0
P粉763662390

リーリー

パラメータはタプル (a, b, c) として渡されることに注意してください。パラメーターを 1 つだけ渡す場合、タプルはコンマ (a,) で終わる必要があります。

データベース API は変数を適切にエスケープし、引用符で囲みます。文字列フォーマット演算子 (%) は使用しないように注意してください。

    エスケープや引用は行いません。
  1. SQL インジェクション
  2. など、制御できない文字列フォーマット攻撃に対して脆弱です。
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!