我已經非常複雜的數據,我插入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