首页 > 解决方案 > 使用字符串而不是 ID 从数据库中获取数据

问题描述

每当我们将数据保存到数据库时,总会有一个相应的 ID 用于从该特定列中获取数据。

sql_con.execute("SELECT FROM DBNAME WHERE ID = ?", id)

上面的代码只允许我们根据 ID 获取数据。问题是上面的代码只接受 1 个提供的绑定。在我的数据库中,我使用字符串集作为每列的 ID,这意味着我的 ID 的绑定大于 1。而且,这些字符串集具有不同的绑定(或字符数)。

如何修改上面的代码,这样我就可以输入字符串作为我的 ID,防止它收到特定的错误:

sqlite3.ProgrammingError: Incorrect number of bindings supplied. The current statement uses 1, and there are 8 supplied.

先感谢您。我使用 Python 3.xx 和内置模块 sqlite3。数据库为 .db 文件格式,是基于磁盘的数据库。

标签: python-3.xsqlite

解决方案


通过询问其他人,我找到了自己问题的答案。要通过输入绑定解决此问题,只需将参数转换为元组即可。

OLD CODE:
sql_con.execute("SELECT FROM DBNAME WHERE ID = ?", id)

进入这个...

NEW CODE:
sql_con.execute("SELECT * FROM DBNAME WHERE ID = ?", (id,))

希望能帮助到你。


推荐阅读