将python变量插入Sqlite数据库

ajsxfq5m  于 2022-11-30  发布在  SQLite
关注(0)|答案(1)|浏览(149)

我正在整理数据库中的一个错误,所以我尝试隔离问题。这个函数是问题所在,但更具体地说是c.execute("INSERT INTO details VALUES(?, ?)",(e ,cp ,))。这导致了以下错误:

c.execute("INSERT INTO details VALUES(?, ?)",(e ,cp ,))

sqlite3.InterfaceError:绑定参数0时出错-可能是不支持类型
我将把函数的其余部分放在下面:

import sqlite3
def echecker():
    email = False
    password = False
    right = 0
    e = "the@test.com"
    p = "test"
    cp = "test"
    space = 0
        
    conn = sqlite3.connect("U+P.db")
    c = conn.cursor()
    c.execute("""SELECT email FROM details""")
    data = c.fetchall()
    conn.commit()
    index = 0
    for row in data:
        if row[index] == e:
           right = right + 1
        else:
           print("right")
    print()
    e = list(e)
    print(e)
    while space < len(e) and right == 0 and email == False:
        if e[0] == "@" and e[space] == "@":
           space = space + 1
           print("wrong")
        elif e[space] == "@":
             email = True
             print("right")
        else:
             space = space + 1
             print("wrong")
    print()
    if p == cp:
        password = True
        print("right")
    print()
    if password == True and email == True and right == 0:
       conn = sqlite3.connect("U+P.db")
       print("a")
       c = conn.cursor()
       print("a")
       c.execute("INSERT INTO details VALUES(?, ?)",(e ,cp ,))
       print("a")
       conn.commit()
       print("siuu")
echecker()
fzwojiic

fzwojiic1#

那么,您将e重新分配给列表e = list(e),当然,随后尝试提供e作为查询参数将失败。

相关问题