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 接受我的字符串作为单个字符串?

4

1 回答 1

3

参数参数必须是一个序列,所以在这里使用一个元组:

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

这与管道符号无关,顺便说一句,但与字符串也是序列这一事实有关。3 个字符的字符串是 3 个元素的序列。

于 2013-03-28T20:21:45.267 回答