错误用法1:
sql = select id, name from test where id=%d and name='%s' %(id, name)
cursor.execute(sql)
错误用法2:
sql = select id, name from test where id=+ str(id) + and name='+ name +'
cursor.execute(sql)
正确用法1:
args = (id, name)
sql = select id, name from test where id=%s and name=%s
cursor.execute(sql, args)
execute()函数本身有接受sql语句参数位的,可以通过python自身的函数处理sql注入问题。
正确用法2:
name = mysqldb.escape_string(name)
sql = select id, name from test where id=%d and name='%s' %(id, name)
cursor.execute(sql)
python模块mysqldb自带针对mysql的字符转义函数escape_string,可以对字符串转义。