を引用:SQLiteのパラメータ置換と私はOKに動作し、このライン持って
c.execute('select cleanseq from cleanseqs WHERE newID="%s"'%name)
をしかし、私は(私はこれがより安全であることをhereを見るので)SQLiteのパラメータ置換の代わりの代わりに文字列置換を使用します。
これは私の(失敗)してみてくださいです:
t = (name,)
c.execute('select cleanseq from cleanseqs WHERE newID="?"',t)
しかし、この行が返されます:供給バインディングの
」誤った番号を 。現在のステートメントは 0を使用しており、1つが供給されています。
したがって、私の声明の左の部分は機能しません。私は1つのバインディング(名前、t)を提供していますが、疑問符(?)は解析されていないようです。 ?引用符を削除すると、?が動作します。しかし、私は彼らが必要な場合があることを覚えているので、私は引用符がそこに残ることを望む。
そこで質問です:
c.execute('select cleanseq from cleanseqs WHERE newID="%s"'%name)
パラメータを使うことは素晴らしいことです。より安全なだけでなく、はるかに高速です。ここで読む:http://stackoverflow.com/questions/904796/how-do-i-get-around-the-problem-in-sqlite-and-c/926251#926251 – tuinstoel