我正在使用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接受我的字符串作为单个字符串?
答案 0 :(得分:3)
参数参数必须是序列,因此请在此处使用元组:
s.execute('INSERT INTO mytable (col_name) VALUES (?);', ("a|b",))
这与管道符号btw无关,但是所有字符串都是序列的事实。 3个字符的字符串是3个元素的序列。