Mysql 连接器 Python 语法错误

Mysql connector Python Syntax error

我想 运行 在 tkinter 界面中创建函数,但它给我这个错误:

1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''' (id INT NOT NULL AUTO_INCREMENT,cash INT,dt DATE, PRIMARY KEY(id))' at line 1

这是代码。想了很多都没有...

    from mysql.connector import MySQLConnection, Error
    from tkinter import *

    DB_HOST = 'localhost'
    DB_USER = 'root'
    DB_PASS = 'mysql123'
    DB_NAME = 'Savings'

    def create(Name):
        try:
            connection = MySQLConnection(host=DB_HOST,user=DB_USER,password=DB_PASS,database=DB_NAME)
            cursor = connection.cursor()
            tabla = Name.get()
            cursor.execute("CREATE TABLE %s (id INT NOT NULL AUTO_INCREMENT,cash INT,dt DATE, PRIMARY KEY(id))", (tabla,))
            print("Hecho!")
        except Error as e:
            print(e)
        finally:
            connection.commit()
            cursor.close()
            connection.close()

不能参数化table或列名。使用字符串格式(但请确保您信任您的来源或仔细验证输入的 table 名称):

cursor.execute("CREATE TABLE {table} (id INT NOT NULL AUTO_INCREMENT,cash INT,dt DATE, PRIMARY KEY(id))".format(table=tabla))

请注意,您可以使用 mysql 连接器转义字符串:

tabla = connection.converter.escape(tabla)