此查询很简单,但是当文本包含一些引号时,它不起作用。
cursor.execute ("INSERT INTO text (text_key, language_id, text) VALUES ('%s', '%s', '%s')" % (key, language_id, text))
保护文字变量的最佳方法是什么?
答案 0 :(得分:2)
您正在做的事情将导致SQL注入漏洞。将参数化查询作为第一个参数传递,将值序列作为第二个参数传递。
答案 1 :(得分:2)
始终将参数与查询分开传递:
cursor.execute (
"INSERT INTO text (text_key, language_id, text) VALUES (%s, %s, %s)",
(key, language_id, text))
这样就可以正确处理引用。