Python を使用して MySQL クエリの % 文字をエスケープする方法
Python で MySQL クエリを構築する場合、次のような特定の文字をエスケープする必要があります。パーセント記号 (%)。そうしないと、エラーが発生する可能性があります。
次のクエリを検討してください:
query = """SELECT DATE_FORMAT(date_time,'%Y-%m') AS dd FROM some_table WHERE some_col = %s AND other_col = %s;""" cur.execute(query, (pram1, pram2))
このクエリを実行すると、「ValueError: unsupported formatcharacter 'Y'」例外が発生します。これは、MySQL が % 文字をリテラル文字として扱うのではなく、DATE_FORMAT 関数内の形式指定子として解釈するために発生します。
この問題を解決するには、MySQL Connector/ で提案されているリテラル エスケープを使用することをお勧めします。 Python ドキュメント:
literal% = '%%' # Define a literal percent string query = """SELECT DATE_FORMAT(date_time,'{}') AS dd FROM some_table WHERE some_col = %s AND other_col = %s;""".format(literal%) cur.execute(query, (pram1, pram2))
パーセント文字を別のパーセント記号でエスケープすると、形式指定子の影響を受けることなくクエリが正しく実行されます。 解釈。このアプローチにより、パーセント記号がクエリ内でリテラル文字として扱われることが保証されます。
以上がPython を使用して MySQL クエリでパーセント記号 (%) をエスケープする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。