python-3.x - 使用字符串而不是 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 文件格式,是基于磁盘的数据库。
解决方案
通过询问其他人,我找到了自己问题的答案。要通过输入绑定解决此问题,只需将参数转换为元组即可。
OLD CODE:
sql_con.execute("SELECT FROM DBNAME WHERE ID = ?", id)
进入这个...
NEW CODE:
sql_con.execute("SELECT * FROM DBNAME WHERE ID = ?", (id,))
希望能帮助到你。
推荐阅读
- sql-server - SQL CLR 中的 .Net Core 程序集
- scheme - 评估复合程序元循环“应用”的顺序
- apache-nifi - 在“ExtractText”调用的 Nifi 处理器“InvokeHttp”中,您在哪里编写 POST 请求的正文
- android - 调试 espresso 测试在“实例化测试...”处挂起并出现 Object.wait 错误
- python - Python (cpython) 在内存屏障和原子性等方面的行为是否得到保证?
- vue.js - 在 Vue 中观察数组的添加/删除
- reactjs - UnhandledPromiseRejectionWarning: MongoNetworkError: failed to connect to server
- sqlite - 如何在主页中使用提供程序实例化 Moor_Flutter 数据库(daos)?
- java - 如何安装hadoop纱线?
- r - R tidy 按组添加摘要