Python から MySQL クエリの「%」文字をエスケープする方法は?

Mary-Kate Olsen
リリース: 2024-11-16 03:28:03
オリジナル
851 人が閲覧しました

How to Escape the '%' Character in MySQL Queries from Python?

Python からの MySQL クエリの % のエスケープ

Python の MySQLdb ライブラリを使用すると、実行中に「ValueError: unsupported formatcharacter」例外が発生します。 「%」文字を含むクエリはイライラする可能性があります。これは、MySQL が「%」文字をワイルドカードとして扱い、リテラルではなくクエリの一部として解釈するためです。

この問題を解決するには、ドキュメントでは、リテラルの「%」記号をエスケープすることを推奨しています。クエリ文字列がexecute()に渡されます。二重 % (%%) を使用すると、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))
ログイン後にコピー

リテラルの "%" 記号をエスケープすることで、MySQL は "Y" と "m" を DATE_FORMAT 文字列内の特定の文字として認識し、エラーが回避されます。

以上がPython から MySQL クエリの「%」文字をエスケープする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート