0

この関数を呼び出すと、「OperationalError: near "VARCHAR": syntax error」が表示されます。何が間違っていますか?

def database_create_user(table_name, user_ID, username, password, creator_exp):
    users_db_curs.execute("INSERT INTO `" + table_name + "` (uID VARCHAR(20), username VARCHAR(20), password VARCHAR(30), creator_exp VARCHAR(20)) VALUES ('" + user_ID + "', '" + username + "', '" + password + "', '" + creator_exp + "')")
    users_db_connection.commit()
4

2 に答える 2

2

テーブルが作成されたら、各 INSERT クエリで列の型を再指定する必要はありません。あなたはただ行うことができます:

users_db_curs.execute("INSERT INTO `" + table_name + "` (user_ID, username , password , creator_exp ) VALUES ('" + user_ID + "', '" + username + "', '" + password + "', '" + creator_exp + "')")
于 2012-05-06T01:54:53.720 に答える
2

INSERT ステートメントでデータ型を指定しないでください。INSERT ステートメントに表示されたデータ型を削除しました。こちらが修正版です。

ここでは、わかりやすく読みやすくするために、コードを複数行にまとめています。

def database_create_user(table_name, user_ID, username, password, creator_exp):
users_db_curs.execute("INSERT INTO `" + table_name + "` (uID, username, 
password, creator_exp) VALUES ('" + user_ID + "', '" + username + "', 
'" + password + "', '" + creator_exp + "')")
users_db_connection.commit()
于 2012-05-06T01:55:10.483 に答える