Python SQL Injection safe



简短的问题:我想让我的代码更安全,但在这一行中它崩溃了:

self.cursor.execute("SELECT device_name FROM device WHERE device_id = %s", self.device_id)

这工作正常,但对于注入攻击不安全:

self.cursor.execute("SELECT device_name FROM device WHERE device_id = " + str(self.device_id))

我不知道,第一行有什么问题。

[...] raise errors.get_exception(packet)
mysql.connector.errors.ProgrammingError: 1064 (42000): Unknown error

第二个参数必须是参数的集合(元组、列表或字典(。

self.cursor.execute("SELECT device_name FROM device WHERE device_id = %s", 
(self.device_id,))

最新更新