在PostgreSQL中插入包含单引号的文本
在PostgreSQL中插入包含单引号的值可能会比较棘手。但是,有一些方法可以确保正确转义。
要插入包含单引号的值,请在字符串中将它们加倍:
<code class="language-sql">INSERT INTO test VALUES (1, 'user''s log');</code>
在将standard_conforming_strings
设置为off
的PostgreSQL版本中,或者使用E
前缀启用POSIX转义字符串语法时,可以使用反斜杠转义单引号:
<code class="language-sql">INSERT INTO test VALUES (1, E'user\'s log');</code>
另一个选项,尤其适用于包含多层转义的复杂字符串,是使用美元符引号字符串:
<code class="language-sql">INSERT INTO test VALUES (1, $token$escape ' with ''$token$);</code>
PostgreSQL 提供了用于正确引用字符串的函数:
quote_literal()
或 quote_nullable()
:引用字符串,或对空输入返回 NULL。%L
说明符的 format()
:等效于 quote_nullable()
。例如:
<code class="language-sql">INSERT INTO test VALUES (1, format('%L', 'user''s log'));</code>
以上是如何在 PostgreSQL 中正确插入带单引号的文本?的详细内容。更多信息请关注PHP中文网其他相关文章!