pymsql的使用
初识pymysql模块
先在数据库中创建一个用户信息表,里面包含用户的ID、用户名、密码
create table userinfo(
uid int not null auto_increment primary key,
username varchar(32),
pwd varchar(32)
)engine = innodb default charset=utf8;
知识兔增加一个用户的信息:
insert into userinfo(username,pwd) values('jxson','a123');
知识兔用pymysql模块从数据库拿到用户信息模拟登陆效果:
import pymysql
user = input('username:') #输入用户的名字
pwd = input('password:') #输入用户的密码
conn = pymysql.connect(host ='localhost',user = 'root',password = '',database = 'db1') #连接数据库
cursor = conn.cursor() #cursor是一个游标 去帮我们获取数据
sql_search = "select * from userinfo where username='%s' and pwd='%s'" %(user,pwd,) #SQL语句
cursor.execute(sql_search) #执行SQL语句
get_one = cursor.fetchone() #拿一组数据
cursor.close() #关闭游标
conn.close() #关闭连接
if get_one: #判断是否有拿到数据
print("登陆成功!")
print(get_one)
else:
print("登陆失败!")
知识兔执行结果:
username:jxson
password:a123
登陆成功!
(1, 'jxson', 'a123')
知识兔防止SQL注入的改进方法
1.
sql_search = "select * from userinfo where username=%s and pwd=%s"
cursor.execute(sql_search,user,pwd)
知识兔2.列表的表示方式
sql_search = "select * from userinfo where username=%s and pwd=%s"
cursor.execute(sql_search,[user,pwd])
知识兔3.字典的表示方式
sql_search = "select * from userinfo where username=%(u)s and pwd=%(p)s"
cursor.execute(sql_search,{'u' : user,'p' : pwd})
知识兔