我正在尝试加载表试验中的数据,它显示无效的列名称 - 名称。
我正在动态地传递名称和区域内的值。
cursor.execute("insert into trial (NameofTheProperty, AreaofTheProperty)
values (Name, Area)")
cnxn.commit()
最佳答案
您需要在列值周围加上引号,这样它们就不会被解释为列名称:
insert into
trial (NameofTheProperty, AreaofTheProperty)
values
("Name", "Area")
现在,既然您提到将这些值动态插入到查询中,您就可以让数据库驱动程序处理引号和其他事情(例如类型转换):
property_name = "Name"
property_area = "Area"
cursor.execute("""
insert into
trial (NameofTheProperty, AreaofTheProperty)
values
(?, ?)""", (property_name, property_area))
cnxn.commit()
这称为查询参数化,被认为是将值插入 SQL 查询的最安全、最可靠的方法。这些 ?
值称为“占位符”。
请注意,数据库驱动程序会自动在字符串值周围加上引号 - 无需手动执行。
关于python - Pyodbc - 在表内加载数据导致错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47614591/