sqlite 提供的绑定数量不正确,当前语句使用11,提供了10

sgtfey8w  于 2022-11-14  发布在  SQLite
关注(0)|答案(1)|浏览(177)

我正在学习编程,调试中的错误消息让我有点困惑,当我尝试用11条语句创建一个SQLlite数据库时,我遇到了两个不同的错误。
以下是我的代码:

import sqlite3

connection = sqlite3.connect("wtime1.db")
cursor = connection.cursor()


date = ("31.10.2022")
p_unit = ("MMO")
equip = ("D014-K-00001")
report_prio = ("1")
order_prio = ("2")
job = ("Oel wechsel")
w_time = ("120")
fte = ("2")
reason = ("Kein Oel vorhanden")
cause = ("MAR 2")
solved = ("Erledigt")

mar2_list = ([date, p_unit, equip, report_prio, order_prio, job, w_time, fte, reason, cause, solved])

cursor.execute("create table if not exists mar21 (DATE integer, P_UNIT text, EQUIP text, REPORT_PRIO text, ORDER_PRIO text, JOB text, W_TIME integer, FTE integer, REASON text, CAUSE text, SOLVED text)")
cursor.executemany("insert into mar21 values (?,?,?,?,?,?,?,?,?,?,?)", mar2_list)

第一个错误:

Incorrect number of bindings supplied. The current statement uses 11, and there are 10 supplied.
  File "C:\Users\andre\PycharmProjects\Wartezeiten\db_test.py", line 26, in <module>
    cursor.executemany("insert into mar21 values (?,?,?,?,?,?,?,?,?,?,?)", mar2_list)

好的,我在搜索中发现,当我这样设置逗号时,值的末尾还需要一个逗号

cursor.executemany("insert into mar21 values (?,?,?,?,?,?,?,?,?,?,?,)", mar2_list)

我有一个语法错误

near ")": syntax error
  File "C:\Users\andre\PycharmProjects\Wartezeiten\db_test.py", line 26, in <module>
    cursor.executemany("insert into mar21 values (?,?,?,?,?,?,?,?,?,?,?,)", mar2_list)

我想我在“插入值”这一行上走错了路!

7hiiyaii

7hiiyaii1#

因为您有一条记录,所以使用execute而不是executemany

cursor.execute("insert into mar21 values (?,?,?,?,?,?,?,?,?,?,?)", mar2_list)

相关问题