我已经非常复杂的数据,我插入postgresql和我使用双美元($$)
转义。不过,我有一行以美元符号结尾并导致错误。 原始行像'dd^d\w=dd$
',并且在逃脱时'$$dd^d\w=dd$$$'
。Postgresql逃脱美元符号
我该如何逃避这个特定的行?
我已经非常复杂的数据,我插入postgresql和我使用双美元($$)
转义。不过,我有一行以美元符号结尾并导致错误。 原始行像'dd^d\w=dd$
',并且在逃脱时'$$dd^d\w=dd$$$'
。Postgresql逃脱美元符号
我该如何逃避这个特定的行?
使用任何字符串双美元里面来区分它:
select $anything$abc$$anything$;
?column?
----------
abc$
的insert
是相似的:
insert into t (a, b) values
($anything$abc$$anything$, $xyz$abc$$xyz$);
INSERT 0 1
select * from t;
a | b
------+------
abc$ | abc$
虽然Clodo阿尔是完全正确的,我认为有你需要看的这另一个方面在:
你为什么要做自己的报价?通常应该通过编程语言的客户端驱动程序使用参数化(“准备好”)语句。请参阅bobby tables以获取常见语言的一些示例。使用参数化语句意味着您不必在意再做任何引用,数据库客户端驱动程序会为您处理。
我想给你一个例子,但你还没有提到你的客户端语言/工具。
我正在使用activerecord,并在此之前发布了如何处理这些数据,但没有提供解决方案。 – zulq 2013-05-08 16:48:20
我在做一个插入选择。 – zulq 2013-05-08 11:33:41
@zulq插入是一样的。见编辑的答案。 – 2013-05-08 11:36:27
非常感谢。有用。 – zulq 2013-05-08 11:58:15