如何在python mysql.connector中动态创建表?

问题描述 投票:-1回答:1

我在下面的'"+uname+"'的代码的第5行中出现错误。

如何在运行时创建表?

这是我的代码:

name = en1.get()
uname = en2.get()
password = en3.get()


sql = "insert into register values ('" + name + "','" + uname + "','" + password + "')"
CreateTable = "CREATE TABLE '"+uname+"'(no INT AUTO_INCREMENT PRIMARY KEY,title VARCHAR(255),amount INT,date DATE,mode VARCHAR(255))"
try:
    cur.execute(sql)
    cur1.execute(CreateTable)
    con.commit()
    con1.commit()
    messagebox.showinfo("Success", "Your data is registered successfully!")
except:
    messagebox.showinfo("Error inserting", "Please change your username and try.")
python mysql-python
1个回答
0
投票

在带有get()的语句中,如果将None作为返回值,则以下语句将失败 名称= en1.get()#-无

sql = "insert into register values ('" + name + "','" + uname + "','" + password + "')"
CreateTable = "CREATE TABLE '"+uname+"'(no INT AUTO_INCREMENT PRIMARY KEY,title VARCHAR(255),amount INT,date DATE,mode VARCHAR(255))"

请尝试执行此操作,以便如果任何值均为None,则将获得以下输出不会导致错误,但仍然需要处理sql查询

sql = "insert into register values ('{}','{}','{}')".format(name, uname, password)
CreateTable = "CREATE TABLE '{}'(no INT AUTO_INCREMENT PRIMARY KEY,title VARCHAR(255),amount INT,date DATE,mode VARCHAR(255))".format(name)
print("sql is ", sql)
print("sql is ", CreateTable)

# Output 
sql is  insert into register values ('None','None','None')
sql is  CREATE TABLE 'None'(no INT AUTO_INCREMENT PRIMARY KEY,title VAR
CHAR(255),amount INT,date DATE,mode VARCHAR(255))

© www.soinside.com 2019 - 2024. All rights reserved.