2011-11-24 69 views
0

鑑於以下輸入字符串:逃逸sqlite的結果

(?i:\bsys\.user_catalog\b) 

存儲到sqlite的TEXT場。當使用select進行檢索時,我得到以下結果:

當執行簡單的命令行時

$ sqlite3 databse.name "select a from b" > file.results 

它出現在這樣的編者:

a screenshot of the editor

當我使用,python的sqlite3的lib中,它打印出爲:

(?i:\x08sys\\.user_catalog\x08) 

的問題是:

  1. 將開關ing到BLOB,會爲我解決這個問題嗎?
  2. 有沒有辦法保持TEXT,並仍然把它做好。

在此先感謝

回答

1

一對夫婦的想法:

  • 確保串原是輸入爲原料,讓你存儲它之前的轉義不會發生。

  • 我認爲TEXT可以和BLOB一樣工作,但是您可能需要通過實驗來確認。

  • 存儲爲緩衝器對象:c.execute('INSERT INTO documents VALUES (?, ?)', (somekey, buffer(yourstring)))

+0

確保輸入被插入爲原料(例如'R '' 'INPUT' ''')做的工作,不需要blobing並且這樣的。顯然,輸入是由sqlobject lib逃脫的。 –