2012-04-25 1 views
0

これは簡単なことですが、どこでも正しい答えを見つけることができません。 psycopgを使用して、フィールドに2つの単一引用符を挿入する必要があります。それは、私がしようと何どんなに''psycopgを使用して2つの連続した一重引用符を挿入する

いずれかのアップ(Postgresのドキュメントごとに入力として''''をしようとしたとき)\'\'をエスケープ終了、またはエラーで:意味、列の内側に格納される値ではありません。

これはどのように解決するのですか?

答えて

2

あなたはあなたがさえ覚えて(ちょうど正しいSQLを記述し、バインドされた変数は必要ありません「『』」リテラルを挿入したい確信している場合は、リテラル単一引用符いますそのうちの2つ、すなわち "" '"として引用される)。引用やるそうで

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

、あなたが変数に2重引用符を割り当てることができますし、psycopgを聞かせて:例では、理解することがはるかに簡単です余分な括弧とカンマを補うために

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

注意をカーソルは、cursor.executeの必要に応じてタプルします。

0

参考文献the psycopg2 doc

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

いいえ、それはしません、私は前にそれを試みました。 –

+0

それは、私は確認する必要があります。エラーを表示することができます – okm

+0

リストではなくタプルを使用します。リストは機能するかもしれませんが、公式にはサポートされておらず、将来は消え去るかもしれません。 – fog

関連する問題