Pyodbc - 在 table 中加载数据导致错误

Pyodbc - loading data inside a table causing error

我正在尝试加载 table 试验中的数据,但它显示无效的列名称 - 名称。

我在名称和区域中动态传递值。

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 查询的最安全、最可靠的方法。这些 ? 个值称为 "placeholders"。

请注意,数据库驱动程序会自动在字符串值周围加上引号 - 无需手动操作。