我正在整理数据库中的一个错误,所以我尝试隔离问题。这个函数是问题所在,但更具体地说是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()
1条答案
按热度按时间fzwojiic1#
那么,您将
e
重新分配给列表e = list(e)
,当然,随后尝试提供e
作为查询参数将失败。