码迷,mamicode.com
首页 > 数据库 > 详细

python数据库连接之pyMysql -(二):使用变量向SQL语句中传递参数

时间:2019-09-11 11:43:45      阅读:559      评论:0      收藏:0      [点我收藏+]

标签:from   div   code   word   HERE   区别   参数   注入   rom   

使用MySQLdb连接数据库执行sql语句时,有以下几种传递参数的方法:

 

一.通过自定义参数传递:

import  pymysql
import types

dbinfo={"host":"192.168.6.41",
        "user":"lrtsaudio",
        "password":"2&Ty3DW75i!(vgo.l3Odp1fgWgEG",
        "db":"audiobook"
}

rule=1
sql="SELECT book_id,book_name FROM t_book WHERE market_rule=%s"% rule
connect1=pymysql.connect(**dbinfo)
cursor1=connect1.cursor()
cursor1.execute(sql)
r2=cursor1.fetchmany(2)
print(r2)
cursor1.close()
connect1.close

*这种方法跟常规方法区别不大,且存在漏洞。有些时候不能正常解析,比如包含某些特殊字符,甚至会造成注入攻击的风险。-----不常用,有人用的时候能看懂即可。

 

 

二.执行语句传递参数。(可传递多个参数)

......
#值用“%s”占位符占位(无论是字符串、数字或者其他类型,都是使用这个占位符)
sql="SELECT book_id,book_name FROM t_book WHERE market_rule=%s"
connect1=pymysql.connect(**dbinfo)
cursor1=connect1.cursor()
#执行时,传递对应的参数
cursor1.execute(sql,1)
......

 

三、使用字典类型传递参数

 

python数据库连接之pyMysql -(二):使用变量向SQL语句中传递参数

标签:from   div   code   word   HERE   区别   参数   注入   rom   

原文地址:https://www.cnblogs.com/youzaijiang/p/11504950.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!