0

sqlite3 を使用していますが、|シンボルを含む文字列を追加する必要があるため、いくつかの問題が発生しています。

列が1つだけのテーブルがあり、これを行います:

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 に答える