Python での MySQL クエリからの % のエスケープ
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))
は、mysqldb が % を形式指定子として解釈するため、「ValueError: unsupported formatcharacter 'Y'」という例外を発生させます。
この問題を解決するには, リテラルエスケープ は、mysqldb ドキュメントで推奨されています。これには、クエリ文字列内の % 文字を 2 倍にする必要があります:
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))
これにより、mysqldb が % 文字を形式指定子として解釈することがなくなり、クエリが正常に実行されるようになります。
以上がPython を使用して MySQL クエリの % 文字をエスケープする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。