sql >> データベース >  >> RDS >> Mysql

PythonでMySQLの引用符をエスケープする

    しない 文字列フォーマットを使用してSQL値を補間します。 SQLパラメータを使用する:

    SQL = 'INSERT INTO test_table (col1, col2, col3, col4) VALUES (%s, %s, %s, %s)'
    cursor.execute(SQL, (var1, var2, var3, var4))
    

    ここで%s SQLパラメータです。次に、データベースが値のエスケープを処理します( `cursor.executeの2番目の引数として渡されます)。

    使用する必要のある構文は、データベースアダプタによって異なります。 %sを使用するものもあります 、他の人は?を使用します プレースホルダー用。

    それ以外の場合、これらのパラメーターにリストなどのPythonコンテナーを使用することはできません。最初にそれを文字列形式にシリアル化する必要があります。そのためにJSONを使用することもできますが、データベースにクエリを実行するときに、JSONをPython文字列に再度デコードすることも忘れないでください。それが、他の質問に対する答えが伝えようとしたことです。

    たとえば、var4の場合 はリストです。使用できます:

    cursor.execute(SQL, (var1, var2, var3, json.dumps(var4)))
    


    1. UPDATEステートメントがREFERENCE制約と競合していました-SQLServer/TSQLチュートリアルパート76

    2. WebSocketを使用してmysqlからライブ通知の更新を取得するにはどうすればよいですか?

    3. MySQLでテーブル変数を作成する

    4. MySQL DateTime(TIMESTAMPではない)のデフォルト値をNOW()またはCurrent_DateTImeに設定するにはどうすればよいですか?