ホームページ >データベース >mysql チュートリアル >Python を使用して MySQL クエリの % 文字をエスケープする方法

Python を使用して MySQL クエリの % 文字をエスケープする方法

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-17 20:50:02514ブラウズ

How to Escape the % Character in MySQL Queries Using Python?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。