python链接mysql 语句要密码吗_python 链接 mysql数据库
#需要导入pymysql模块
import pymysql
conn = pymysql.connect(
host = '127.0.0.1',
port = 3306,
user = 'root',
password = '*****',
charset = 'utf8', #编码也一定要添加
database = 'user_db' #一定要添加要使用的数据库
)
cursor = conn.cursor(cursor = pymysql.cursors.DictCursor)
#设值获取的内容为字典模式,默认是元组
sql = 'select * from user_db' #你要执行的sql语句
cursor.execute(sql)
print(cursor.fetchone()) #获取一条
print(cursor.fetchmany(5)) #参数说明 要获取多少
print(cursor.fetchall()) #获取所有
# 注意: 获取的时候,有类似读文件的光标,
可以用 cursor.scroll(1,'relative')
cursor.scroll(1,'absolute') 来控制
# absolute 是以开头为参考,relative 是以当前为参考
***************sql注入的问题*******************
通过特殊符号,达到欺骗,
select * from user_db where name = 'lqw' -- dadadada
#知道用户名,需要密码的部分被注释掉了,直接登录成功
select * from uer_db where name = 'add ' or 1 = 1 -- dada
#不知道用户名,通过or 只要成立一个 1=1恒成立,也可以进入
,解决办法,不要让关键,敏感的自己拼接,
import pymysql
conn = pymysql.connect(.......
) 注意:要添加用的数据库
cursor = conn.cursor()
sql = 'select *from where name = "%s" and password = "%s"'
cuusor.ececute(sql,(name,password))
******************pymysql的增删改查******************