ホームページ  >  記事  >  データベース  >  Python を使用して MySQL クエリでパーセント記号 (%) をエスケープする方法

Python を使用して MySQL クエリでパーセント記号 (%) をエスケープする方法

DDD
DDDオリジナル
2024-11-18 01:08:02197ブラウズ

How to Escape Percent Signs (%) in MySQL Queries Using Python?

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

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