2012-04-25 38 views
0

這看起來很平凡,但我無法在任何地方找到正確的答案。我需要使用psycopg在字段中插入兩個單引號。含義是,要存儲在列內的值爲:''使用psycopg插入兩個連續的單引號

無論我嘗試什麼,它都會以\'\'(根據Postgres文檔嘗試''''作爲輸入時)或錯誤結束。

有什麼建議,該如何解決?

回答

2

如果你確定要插入文字「‘’」你甚至不需要綁定變量,只寫正確的SQL(記住,一個單引號被引用爲其中兩個,即「''」)。一個例子是更容易理解:

curs.execute("INSERT INTO foo VALUES ('''''')") 

否則,你可以在兩個引號分配給一個變量,讓psycopg做報價:

curs.execute("INSERT INTO foo VALUES (%s)", ("''",)) 

注意額外的括號和逗號來彌補元組,按照cursor.execute的要求。

0

參考文獻the psycopg2 doc

cursor.execute("INSERT INTO foo VALUES (%s)", ("''",)) 
+0

不,不這樣做,我曾嘗試過。 – 2012-04-25 15:53:55

+0

它應該,我確認。您可能會顯示錯誤 – okm 2012-04-25 15:59:31

+0

使用元組而不是列表。列表可能有效,但他們從未得到官方的支持,並可能在未來消失。 – fog 2012-04-25 18:57:22