私は SQLite を使用しており、任意の種類のシンボルでデータを保存および読み取る必要があります。このシンボルをエスケープする方法はありますか?
replaceAll("\'","\'") を試していますが、知らないシンボルが他にもある可能性があり、問題がある可能性があります。これを行う方法はありますか?
理論的に'
は、SQL 文字列内で引用符を付ける必要がある唯一の文字です。ただし、 SQL に代入されるリテラル値であるparametersを使用することで、この問題を完全に回避し、プログラムのエスケープと SQLite による文字列のエスケープ解除のオーバーヘッドを防ぐことができます。
これがどのように機能するかは、使用する言語とドライバーによって異なりますが、通常は次のようになります。
db.execute("INSERT INTO Users(Name, Passwd, Expired) VALUES(?, ?, 0)",
["Bob", "!*\\$%&:?"])