【发布时间】:2018-05-16 08:03:18
【问题描述】:
我正在尝试使用 MySQLdb 在 tkinter GUI 项目中引用动态表和字段。使用 psycopg2.sql 处理插入语句。
用户选择代码、尺寸和颜色并输入数量。表名由大小和代码组成(例如,size-small 和 code-1111,table_name=small1111)。然后颜色是列名,数量是输入到字段中的整数。当用户选择输入时,输入会保存在字典 (tdict) 中。并调用字典元素保存在数据库表中。
table_name = tdict['Size']+tdict['Code']
stmnt = ("INSERT INTO {} (%s, Date) VALUES(%s, %s)").format(sql.Identifier((table_name, tdict['Color'])))
c.execute(sql.SQL(stmnt, (tdict['Quantity'], date)))
插入查询给了我一个 TypeError
TypeError("SQL 标识符必须是字符串")
有人可以帮忙吗?我究竟做错了什么?应该如何使标识符表现为字符串? 注意:我尝试通过 str 类传递 Identifier 元素,但没有成功。即
stmnt = ("INSERT INTO {} (%s, Date) VALUES(%s, %s)").format(sql.Identifier((str(table_name, tdict['Color']))))
【问题讨论】:
标签: python-3.x mysql-python psycopg2