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

PostgreSQLでドル引用符で囲まれた文字列に$$を入力します

    別のドル見積もり 代わりに:

    select upsert(
       $unique_token$INSERT INTO zz(a, b) VALUES (66, 'ha$$hahaha')$unique_token$,
       $unique_token2$UPDATE zz SET a=66, b='hahahaha' WHERE a=66$unique_token2$
       )
    

    各終了は、各開始と一致する必要があります。 2つのペアを区別する必要はありませんが、その方が最も安全です。

    これでも、ドルの引用符が文字列内で一致する可能性が理論的に残っています。

    手作業でクエリを作成している場合は、$を確認してください。 文字列内。変数からクエリを作成する場合は、 quote_literal(querystring) 代わりに。

    便利な format() 機能。

    参照:

    余談ですが、この形式の動的SQLはSQLインジェクションに対して非常に脆弱であることをご存知だと思いますか?この種のものはすべて、非常にプライベートな使用または非常に安全な使用のみを目的としています。




    1. iPadアプリから直接MySQLに接続します(PHPなどを介さずに)

    2. 2つの別々のデータベースからの結果の結合

    3. UNION演算子を使用してSQLビューにインデックスを作成しますか?本当にパフォーマンスが向上しますか?

    4. mysqlスクリプトのIF条件