我的脚本中有一个函数将值传递给类方法,该方法的作用是使用它接收的变量填充指定的数据库。事实是,我不确定正确的语法,因为我不使用普通的字符串。这是方法。
def new_response(self, link_pattern, link, response, ref_id=""):
self.db_cursor.execute('''INSERT INTO tb_memory VALUES
(%s, %s, %s, %s)''' % (ref_id, link_pattern, link, response))
最合适的句法方法是什么?
答案 0 :(得分:2)
永远不要使用字符串格式来创建SQL语句!如果使用字符串格式化,则程序将受到可能的SQL注入攻击的影响。
使用'?'
占位符:
def new_response(self, link_pattern, link, response, ref_id=""):
self.db_cursor.execute('''INSERT INTO tb_memory VALUES
(?, ?, ?, ?)''', (ref_id, link_pattern, link, response))
请参阅execute
的{{3}}。