SQLite参数替换问题
将SQLite3与Python 2.5结合使用,我试图遍历列表,并根据商品名称从数据库中获取商品的权重。 我尝试使用“?” 建议使用参数替换来防止SQL注入,但是它不起作用。例如,当我使用: for item in self.inventory_names: self.cursor.execute("SELECT weight FROM Equipment WHERE name = ?", item) self.cursor.close() 我得到错误: sqlite3.ProgrammingError:提供的绑定数量不正确。当前语句使用1,并且提供了8。 我认为这是由最初创建数据库引起的;我制作的实际上创建数据库的模块确实具有8个绑定。 cursor.execute("""CREATE TABLE Equipment (id INTEGER PRIMARY KEY, name TEXT, price INTEGER, weight REAL, info TEXT, ammo_cap INTEGER, availability_west TEXT, availability_east TEXT)""") 但是,当我为每个项目名称使用不太安全的“%s”替换时,它就可以正常工作。像这样: for item in self.inventory_names: self.cursor.execute("SELECT weight FROM …