我正在将 Java 应用程序中的文本插入 Postgresql 数据库,但是当在字符串中遇到 ' 字符时,它都崩溃了。我试过使用 replaceAll(" ' ", " \\' "); 即使它具有更多 \ 字符的不同变体,但它仍然在没有转义符号的字符串中放置一个 '。
有没有办法用字符串中的“替换”?或者另一种将包含单引号的字符串放入 Postgresql 的方法?
我正在将 Java 应用程序中的文本插入 Postgresql 数据库,但是当在字符串中遇到 ' 字符时,它都崩溃了。我试过使用 replaceAll(" ' ", " \\' "); 即使它具有更多 \ 字符的不同变体,但它仍然在没有转义符号的字符串中放置一个 '。
有没有办法用字符串中的“替换”?或者另一种将包含单引号的字符串放入 Postgresql 的方法?
如果您正确使用准备好的语句,则不必担心手动执行此操作。
大多数 SQL 实现使用 ''(2 个单引号)来转义单引号。
例子:
SELECT * FROM users WHERE f_name='foo''bar';
或者你可以使用双美元符号:
例子:
SELECT * FROM users WHERE f_name=$$foo''bar$$;
两个语句都会搜索字符串 foo'bar