0

我正在烧瓶/python 中制作一个小项目,其中我只有一个数据库,它有一个表和一个列 init。但是每当我通过在cmd中触发'''python dbase.py'''来检查我的数据库时,我的数据库都会给出一个错误。它给出了一个错误,它说......

""文件 "dbase.py",第 19 行,在 cur.execute("INSERT INTO tdaba (input) VALUES (?)", daba) sqlite3.ProgrammingError: 提供的绑定数量不正确。当前语句使用 1,提供了 3 个。"""

我将使用此数据库将 TEXT 在线输入到“输入”列中,为此我需要 INSERT 查询。

我的数据库名称是“daba”,它存储在名为“dbase.py”的文件中,它的代码是::

import sqlite3 as lite
import sys

daba = (
    ('1st mssg'),
    ('my 2nd mssg'),
    ('3rd msg, How r U ?')
)


con = lite.connect('daba.db')

with con:

    cur = con.cursor()

    cur.execute("DROP TABLE IF EXISTS tdaba")
    cur.execute("CREATE TABLE tdaba(input TEXT)")
    cur.execute("INSERT INTO tdaba (input) VALUES (?)", daba)
4

1 回答 1

0

第一个问题是“daba”。它是字符串的元组而不是元组的元组

In [1]: daba = (
....:     ('1st mssg'),
....:     ('my 2nd mssg'),
....:     ('3rd msg, How r U ?')
....: )
In [2]: daba
Out[2]: ('1st mssg', 'my 2nd mssg', '3rd msg, How r U ?')

修复 - 在每个字符串后添加逗号(对于具有一个元素的元组需要)。

daba = (
   ('1st mssg',),
   ('my 2nd mssg',),
   ('3rd msg, How r U ?',)
)

第二个问题 - 执行方法。你应该使用executemany。检查样品

cur.executemany("INSERT INTO tdaba (input) VALUES (?)", daba)
于 2013-06-18T21:29:04.330 回答