0

当我调用此函数时,我收到“OperationalError:靠近“VARCHAR”:语法错误,我做错了什么?

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 回答