2011-11-24 64 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逃脱的。 –