使用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) ......
三、使用字典类型传递参数