sqlite3.InterfaceError的其他原因:绑定参数0的错误 - 可能是不受支持的类型

时间:2017-06-12 11:44:51

标签: python sqlite python-3.4

我使用此代码检查我的sqlite数据库中是否存在给定的transactionid。

print((transaction.transactionid,))
print(type(transaction.transactionid))
c.execute("SELECT EXISTS(SELECT transactionid FROM Transactions WHERE transactionid=?);", 
          (transaction.transactionid,))
self.dbconn.commit()
transaction_exists, = c.fetchone()
print(transaction_exists)

在第二次迭代中总是失败并出现此错误:

  

文件" RtMetaMaster.py",第182行,在sync_ticket_to_db中       (transaction.transactionid,))sqlite3.InterfaceError:绑定参数0时出错 - 可能是不支持的类型。

输出打印报表:

('626007',)
<class 'str'>
0    
('625952',)
<class 'str'>
Traceback (most recent call last):
  [..]
  File "RtMetaMaster.py", line 182, in sync_ticket_to_db
    (transaction.transactionid,))
sqlite3.InterfaceError: Error binding parameter 0 - probably unsupported type.

两次交易代码都是类型&#39; str&#39;但它第二次以某种方式失败了。还有哪些错误会导致&#34;错误绑定参数&#34;?

1 个答案:

答案 0 :(得分:0)

我通过在每次c.execute调用后添加self.dbconn.commit()来解决它。对此可能有更好的解决方案。