如何在没有硬代码的情况下将数据插入特定行

2024-10-04 11:33:48 发布

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

本规范旨在实现以下目标:

-输入用户名

-检查数据库上是否存在

-如果没有创建新用户

-添加货币和;平衡到新用户行

问题在于我的插入声明。我不知道在使用定义的变量插入数据时如何使用WHERE条件。欢迎帮助

错误消息:TypeError:函数最多接受2个参数(给定4个)

def add_user():strong text
  print("enter new username")
  UserLogin = str(input())
  c.execute("SELECT username FROM FinanceDBTable")
  enter code here
  for row in c.fetchall():
    print()

#Convers tuple to string without spaces
    UserNameDB = ''.join(row)

    if UserNameDB == UserLogin:
                print('This username already exisits. please try again')
                add_user()
    else:
            print("Please enter your balanace\n")
            userbalance = input()
            print("Please enter currency\n")
            userCurrency = input()
            c.execute("INSERT INTO FinanceDBTable (balance, currency) VALUES (?,?)",
            (userbalance, userCurrency), "WHERE (username) VALUES (?)", (UserLogin))
            conn.commit()

Tags: 用户addinputexecuteusernamewhererowprint
1条回答
网友
1楼 · 发布于 2024-10-04 11:33:48

一种方法是这样做,也不使用递归,这被视为非音速的,也最终会抛出错误。再加上它有点像Python。 我不确定你是否可以在INSERT语句中使用WHERE,你可以在UPDATE中使用WHERE,也许你是从哪里得到这个想法的,但是我认为,通过给对方用户名值也会对你想要达到的效果起作用

def add_user():
    while True:
        username = input("Username: ")
        c.execute("SELECT username FROM FinanceDBTable WHERE username = ?", (username,))
        results = c.fetchall()
        if len(results) < 1:
            # Add user as there is not user with that username.
            user_balance = int(input("Please enter your balance: "))
            user_currency = input("Please enter currency: ")
            c.execute("INSERT INTO FinanceDBTable(username, balance, currency) VALUES (?,?,?)", (username, user_balance, user_currency))
            conn.commit()
            break
        else:
            # User already exists
            print('This username already exists, please try again.')

相关问题 更多 >