1. ホーム
  2. マイスル

[解決済み】MySqlでアポストロフィ(')をエスケープするには?

2022-04-13 12:22:40

質問

その MySQL ドキュメント であるべきだと言っています。 \' . しかし、scite と mysql の両方が、以下のように示します。 '' が動作します。 私はそれを見て、それは動作します。どうすればいいのでしょうか?

どのように解決するのですか?

あなたが引用した MySQL ドキュメントは、実際にはあなたが言及したよりも少し多くのことを述べています。 また、次のようにも書かれています。

A " ' 「で引用された文字列の内側に" ' 「は、" '' ".

(また、リンク先の 表 8.1 の MySQL 5.0 バージョン。 特殊文字のエスケープシーケンス であり、現在のバージョンは5.6である - しかし、現在の 表8.1. 特殊文字のエスケープシーケンス はかなり似ていますね)。

の方がいいと思います。 Postgresのメモにある backslash_quote (string) パラメータ が参考になります。

これは、引用符を次のように表すことができるかどうかを制御します。 \' を文字列リテラルで使用します。SQL標準では、引用符を二重にして表現することが推奨されています ( '' しかし、PostgreSQLでは歴史的に \' . しかし \' は、セキュリティ上のリスクがある...

つまり、シングルクオートをエスケープするためにバックスラッシュを使用するよりも、シングルクオートを2重に使用する方が全体的かつ長期的に良い選択であることがわかります。

もし、言語の選択、SQLデータベースの選択とその非標準的な癖、クエリフレームワークの選択も方程式に加えたいのであれば、別の選択に行き着くかもしれませんね。制約についてあまり情報を与えていませんね。