3

私の質問は簡単です。Python では、一重引用符を含む SQL ステートメントをどのようにフォーマットしますか?

地名があります

"Musee d'Orsay"

私が欲しいのは

"Musee d\'Orsay"

そのため、次のステートメントを使用して一重引用符を置き換えてみました

str.replace("'","\'")

ただし、元の文字列を返します。何か助けてもらえますか?

ダブルスラッシュはうまくいきました。

str.replace("'","\\'")


OK、すべての応答に感謝します。私はそれを理解しました。

一重引用符を二重にしてエスケープする必要があります。

str.replace("'","''")

INSERT INTO table_name VALUES (オルセー美術館);

わたしにはできる。

4

1 に答える 1

9

それに入る文字列を準備してSQLクエリを作成しないでください。プレースホルダーを使用して、ライブラリにエスケープ作業を任せてください。

その正確な構文は、使用するデータベースによって異なる場合があります。たとえば、sqliteでは次のようになります。

m = "Musée d'Orsay"
cursor.execute('SELECT * FROM table WHERE museum=?', m)
于 2012-10-16T08:55:08.543 に答える