2012-06-12 18 views
0

我有一個多語言基於Postgres的-Django的/應用程序,在接下來的輸入失敗(消毒):的Postgres弄僵上特定輸入

STATEMENT: INSERT INTO "main_model" ("a_id", "b", "c", "d", "text", "f", "g", "h") 
    VALUES (1, 2, 'c', 'd', '...nahlá<U+009A>ení ... nahla<U+009A>ování...', 'f', 'g', 'h') 
    RETURNING "main_model"."id" 
ERROR: current transaction is aborted, commands ignored until end of transaction block 

text字符串是在unicode的,它出現postgres的被弄僵在上面。這只是一個例子,但其他幾種語言也出現這種情況。

有沒有更好的方法來理解這個陳述的確切錯誤是什麼?

在把它們扔到數據庫之前,我需要在unicode字符串上做任何衛生設施嗎?

+0

這不是** **那個聲明,這是之前的一些聲明,拋出一個錯誤,爲此你得到的「當前事務被中止」。 –

+2

Upvoted,以平衡downvote ..世界上沒有理由downvote這個問題 –

+0

@a_horse_with_no_name - 好吧,這將是真棒,如果你能解釋一下怎麼看失敗的聲明。因爲日誌現在什麼都沒有顯示。 –

回答

0

我無意中發現了https://stackoverflow.com/a/10437521/24545

從本期學到的是,以確保沒有被捕獲並沒有處理錯誤的教訓。

在我的情況下,我有一個try/except塊,它隱藏了一個真正的錯誤,並且下一次出現postgres中的事務錯誤。

+0

好吧,你正在談論Python代碼中的try/except塊與PostgreSQL交談。我有一個想法,你在談論PL/PgSQL時感到困惑。 –