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"。
请注意,数据库驱动程序会自动在字符串值周围加上引号 - 无需手动操作。
我正在尝试加载 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"。
请注意,数据库驱动程序会自动在字符串值周围加上引号 - 无需手动操作。