cur.execute(sql,args)和cur.execute(sql)的区别

python代码示例:

  1. 方式一:

    userid = “123”
    sql = “select id,name from user where id = ‘%s’” % userid
    cur.execute(sql)

  2. 方式二:
    “”"
    sql语句模板中的参数填充符是 %s 而不是 ‘%s’ ,且多个参数需要用元祖存放,单个参
    数可直接传递
    “”"
    userid = “123”
    sql = "“select id,name from user where id = %s and name =%s”
    cur.execute(sql, (‘123’, ‘云天明’))

区别:
方式一会存在sql注入的风险,方式二中用python内置的方法可以对sql语句中传入的参数进行校验,在一定程度上屏蔽掉sql注入,增加了sql的安全性,在不便直接使用sqlArchemy框架(底层实现也是调用的方式二)的情况下,建议选择方式二。

你可能感兴趣的:(Java后端框架)