python-3.x - sqlite3.OperationalError:3 列的 1 个值
问题描述
我正在尝试使用 sqlite 数据库插入和提取数据,但我一直遇到此错误:
Traceback (most recent call last):
File "Database_Section\Dsite.py", line 14, in <module>
insert("Cup", 4, 5)
File "Database_Section\Dsite.py", line 10, in insert
cur.execute(cur.execute("INSERT INTO store(item, quantity, price) VALUES ('?,?,?')", ('item','quantity','price')))
sqlite3.OperationalError: 1 values for 3 columns`enter code here
这是我的代码:
import sqlite3
conn = sqlite3.connect('lite.db')
cur = conn.cursor()
cur.execute('CREATE TABLE IF NOT EXISTS store(item TEXT, quantity INTEGER, price REAL)')
conn.commit()
def insert(item,quantity,price):
conn = sqlite3.connect('lite.db')
cur = conn.cursor()
cur.execute(cur.execute("INSERT INTO store(item, quantity, price) VALUES ('?,?,?')", ('item','quantity','price')))
conn.commit()
conn.close()
impo
insert("Cup", 4, 5)
def view():
conn = sqlite3.connect('lite.db')
cur = conn.cursor()
cur.execute("SELECT * FROM store")
rows = cur.fetchall()
conn.close()
return rows
print(view())
解决方案
"INSERT INTO store(item, quantity, price) VALUES ('?,?,?')"
这试图将文字字符串插入'?,?,?'
表中,但由于它是单个值并且有 3 列而失败(如错误所述)。
您应该删除占位符周围的引号:
"INSERT INTO store(item, quantity, price) VALUES (?,?,?)"
推荐阅读
- google-cloud-platform - 在云构建中运行 gcloud 脚本
- c# - 检查datagridview中是否存在行,如果不存在则插入新行c#
- kubernetes-apiserver - 标签的 API Swagger 定义
- python - 如何计算叠加二值图像中包含/排除的白色圆圈的数量?
- windows - 在每个输出上面写一句话( Powershell , where object 和 win32_service )
- javascript - NextJS - 读取本地文件(readdir、readFile) - 未找到模块:无法解析“fs”
- c# - foreach循环内的递归
- filenet-p8 - 我如何在 FileNet 中查找 WorkItems
- access-token - 个人访问令牌不适用于 OnPrem Azure DevOps
- python - 未找到页面 (404) 未找到与查询匹配的帖子