2012-04-25 26 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