sqlite3.ProgrammingError:提供的绑定数量不正确;(

2024-10-05 10:47:35 发布

您现在位置:Python中文网/ 问答频道 /正文

import sqlite3

db = sqlite3.connect('login.db')
c = db.cursor()
c.execute("CREATE TABLE IF NOT EXISTS users (email TEXT, password TEXT)")

def register():
    global user
    global passw
    print('REGISTER')
    user = (str(input('User: ')))
    passw = (str(input('Pass: ')))
    c.execute("INSERT INTO users VALUES ('"+user+"', '"+passw+"')")
    db.commit()
    print('REGISTRADO COM SUCESSO!')
    login()

def login():
    global luser
    global lpassw
    luser = (str(input('User: ')))
    lpassw = (str(input('Pass: ')))
    find_users = c.execute("SELECT * from users WHERE email = ? AND password = ?")
    c.execute(find_users, [(luser), (lpassw)])
    r = c.fetchall()
    if r:
        print('LOGADO!')
    else:
        login()

register()

我正在用python+sqlite3做一个登录和注册系统

每次运行此错误时:

File "d:\darkzinmaker\py\files\login.py", line 23, in login
    find_users = c.execute("SELECT * from users WHERE email = ? AND password = ?")

sqlite3. ProgrammingError: Incorrect number of bindings supplied. The current statement uses 2, and there are 0 supplied.

Tags: inputexecutedbemailloginpasswordglobalusers
1条回答
网友
1楼 · 发布于 2024-10-05 10:47:35

试试这个

def login():
    global luser
    global lpassw
    luser = (str(input('User: ')))
    lpassw = (str(input('Pass: ')))

    # removed the c.execute 
    find_users = "SELECT * from users WHERE email = ? AND password = ?")
    c.execute(find_users, [(luser), (lpassw)])

    r = c.fetchall()
    if r:
        print('LOGADO!')
    else:
        login()

相关问题 更多 >

    热门问题