【发布时间】:2021-08-05 07:45:13
【问题描述】:
我正在尝试使用 python-flask 在 MySQL 中创建一个表。表名是我从服务器中提取的“id”参数。我希望这个 id 是我正在创建的表的名称,但是当我尝试这样做时,我收到以下错误:
'mysql.connector.errors.ProgrammingError: 1064 (42000): 你的SQL语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“46490210(用户 varchar(50),消息 varchar(150))”附近使用正确的语法
这是python-sql代码供参考。
#the file name is chat_db.py
def createTable(id):
cursor = db.cursor()
cursor.execute("CREATE TABLE IF NOT EXISTS %s (user varchar(50), message varchar(150))",(id,))
db.commit()
这是 Flask 代码(没有装饰器):
import chat_db as roomdb
import random
def rand_id():
return random.randint(10000000,99999999)
def roomTable():
roomdb.createTable(rand_id())
roomTable()
请帮忙! :)
【问题讨论】:
-
这在 mysql 中是不允许的。您必须在 tehnumber 或类似之前放一个字母
-
@nbk 这并没有解决我的问题。我在“roomTable”函数中进行了以下更改:
roomdb.createTable('a'+str(rand_id()))(在 id 的开头添加了“a”)但我仍然收到以下错误:“mysql.connector.errors.ProgrammingError: 1064 (42000): You您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“a93937637”(用户 varchar(50),消息 varchar(150))附近使用正确的语法。跨度> -
@nbk 如果我误解了您的解决方案,请参考我在问题中使用的代码提供解决方案。谢谢!
标签: mysql flask mysql-python