2017-03-10 3 views
0
def staff_database(db_name,table_name,sql_1,admin): 
    with sqlite3.connect('BehaviourManagement.db') as db:#connects this funtion to the database file 
     cursor = db.cursor()#used to naviage around the database 
     cursor.execute("select name from sqlite_master where name=?",(table_name,))#checks database for this table 
     result = cursor.fetchall()#gets the results 
     if len(result) != 1:#runs if statement if table present in the database 
      cursor.execute(sql_1)#runs the sql statement 
      db.commit()#ensures changes made to the database are saved 
      cursor.execute(insert_to_login ,admin) 
      db.commit() 

sql_1 = """CREATE TABLE Login(
     ID INTEGER PRIMARY KEY autoincrement, 
     username text, 
     password text, 
     );""" 

je suis en train d'exécuter ce code, mais je reçois l'erreur suivante ...sqlite3.OperationalError: près «) »: erreur de syntaxe

Traceback (most recent call last): 
    File "M:\computer science a2\comp 3\login.py", line 151, in <module> 
    staff_database(db_name, table_name,sql_1,admin)#runs the function 
    File "M:\computer science a2\comp 3\login.py", line 62, in staff_database 
    cursor.execute(sql_1)#runs the sql statement 
sqlite3.OperationalError: near ")": syntax error 

si quelqu'un peut aider, je vous serais reconnaissant.

+0

supprimer, après le texte du mot de passe ... –

Répondre

1

Supprimer le dernier "," après "mot de passe". La virgule indique qu'un autre champ suit.

3

Fix sql_1:

sql_1 = """CREATE TABLE Login(
     ID INTEGER PRIMARY KEY autoincrement, 
     username text, 
     password text 
     );""" 

enlever , après password text.