2013-03-28 26 views
0

管道符號串我使用sqlite3的,但我遇到了一些問題,我需要添加含有|符號如何插入與源碼

我那裏有一列一個表,我做這個字符串:

s.execute('INSERT INTO mytable (col_name) VALUES (?);',"a|b") 

但作爲一個結果,我得到這樣的:

ProgrammingError: Incorrect number of bindings supplied. The current statement uses 1, and there are 3 supplied. 

我也嘗試引用,就像這樣:

s.execute('INSERT INTO mytable (col_name) VALUES (?);',"'a|b'") 

和錯誤是怎麼樣的不同,但仍然無法正常工作

ProgrammingError: Incorrect number of bindings supplied. The current statement uses 1, and there are 5 supplied. 

我怎樣才能說服sqlite3的接受我的字符串作爲一個字符串?

回答

3

參數參數必須是一個序列,所以這裏使用一個元組:

s.execute('INSERT INTO mytable (col_name) VALUES (?);', ("a|b",)) 

這有什麼好做的管道符號,順便說一句,但一切的事實,字符串是序列了。 3個字符的字符串是3個元素的序列。