Search code examples
pythonsqlitesql-updatewhere-clause

Python SQlite3 Update No Error But Does Not Updating


It shows no error and is able to run, but the data in the SQLite table doesn't update. However other update function similar to this work

def seller_edit():
    while True:
        sellername = str(input("Enter your username: "))
        with sqlite3.connect(r"C:\Users\User\Desktop\HFSystem\Assginment\HFuserinfo.db") as connect:
            cursor = connect.cursor()
        check = "SELECT * FROM sellerinfo WHERE Username = ?"
        cursor.execute(check,[sellername])

        results = cursor.fetchall()

        if results:
            Phone = int(input("Enter New Phone No.: "))      
            Email = str(input("Enter New Email: "))
            Address = str(input("Enter New Address: "))
      

            updateseller ="""UPDATE sellerinfo SET Phone = ?, Email=?,Address=? WHERE Username=?"""
            
            cursor.execute(updateseller,[sellername,Phone,Email,Address])       
            connect.commit()
            print("Seller Info Edited!")
            connect.close()
            seller_info_menu()
            break

        else:
            print("ProductID does not recognised")
            option = input("Do you want to try again (y/n): ")
            if option.lower() == "n":
                seller_info_menu()
                break

Solution

  • The order of the parameters inside the tuple of the 2nd argument of cursor.execute() must be the same as the order of the ? paceholders:

    cursor.execute(updateseller, (Phone, Email, Address, sellername))