2017-10-04 16 views
1

私はMySQLにデータを挿入しようとしていますが、その間に入力が一重引用符で囲まれているため、SQL挿入文字列が壊れていました。バックスラッシュで引用符をエスケープします

は、これは私がプライバシーのために電子メールを暗号化したコード

    String visitorSql = "INSERT INTO visitor" + "(encryptedEmail)" + "VALUES ('" + encryptedEmail.replace("'", "\\'")+"')"; 

構文エラーがあるの私のライン、

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''w+8L8%]/ò“VZ(R?cêíµ–ö\')' at line 1 

です。引用符を逃れるためにどのようにコード化すべきですか?

答えて

2

エスケープするには、すべての一重引用符( ')を' '(二重引用符)に置き換える必要があります。

String visitorSql = "INSERT INTO visitor(COLUMN_NM) VALUES ('" + encryptedEmail.replace("'", "''")+"')"; 
+0

同じエラーがまだ発生しました – Bob

+0

ここに作成されたクエリを貼り付けます。 – JRR

+0

SQL構文にエラーがあります。あなたのMySQLサーバのバージョンに対応するマニュアルをチェックして、正しい構文を確認してください。近くの ''¶¶¶\teHß<.2?@ {rTì¶= @ q +ü\ ')' 1行目 – Bob

関連する問題