python连接mysql服务端

系统 1344 0

python连接mysql的客户端

          
            import pymysql # 导入模块
conn = pymysql.connect(
    host='127.0.0.1', # 主机模块
    port=3306, # 端口号
    user='root',# 用户名
    password='123', # 密码
    database='db', # 需要连接的库
    charset='utf8' # 指定编码utf8
)
cursor = conn.cursor() # 获取游标 
# cursor = conn.cursor(pymysql.cursors.DictCursor) # 获取的查询结果更加规范化 便于分辨
sql = "select * from dep;"
ret = cursor.execute(sql) # ret 受影响的行数
# res = cursor.executemany(sql,[(a,b),(a1,b1),(a2,b2)]) # 插入多行数据时 
print(cursor.fetchall())  # 取出所有的
print(cursor.fetchmany(3))# 取出多条
print(cursor.fetchone())  # 取出单条

cursor.scroll(3,'absolute') # 绝对移动,按照数据最开始位置往下移动3条
cursor.scroll(1,'relative') # 通过上面取了一次数据,游标的位置 ,我现在相对移动了1个记录,那么下次再取,取出的是第三条,我相对于上一条,往下移动了一条
conn.commit()  # 增删改操作时,需要进行提交

cursor.close() # 关闭游标
conn.close() # 关闭连接
          
        

MySQL注入问题

之前我们进行用户名密码认证是先将用户名和密码保存到一个文件中,然后通过读文件里面的内容,来和客户端发送过来的用户名密码进行匹配,现在我们学了数据库,我们可以将这些用户数据保存到数据库中,然后通过数据库里面的数据来对客户端进行用户名和密码的认证。

​ 自行创建一个用户信息表userinfo,里面包含两个字段,username和password,然后里面写两条记录

          
            sql注入:解决方案
    cursor.excute(sql,[参数1,参数2...])
# 使用数据来进行一下用户名和密码的认证操作
import pymysql

conn = pymysql.connect(
    host='127.0.0.1',
    port=3306,
    user='root',
    password='123',
    database='db',
    charset='utf8'
)

cursor = conn.cursor(pymysql.cursors.DictCursor)
usr = input('请输入用户名:').strip()
pwd = input('请输入密码:').strip()
# 当已知用户名时 破解密码为 (feng'-- dfadasdad)
# 当未知用户名密码时 破解密码为 (fsdf' or 1=1 -- fdsfsdfs)

sql = "select * from userinfo where username='%s' and password='%s';"%(usr,pwd)

res = cursor.execute(sql) # res我们说是得到的行数,如果这个行数不为零,说明用户输入的用户名和密码存在,如果为0说名存在,你想想对不

print(res) # 如果输入的用户名和密码错误,这个结果为0,如果正确,这个结果为1
if res:
    print('登陆成功')
else:
    print('用户名和密码错误!')

# 通过上面的验证方式,比我们使用文件来保存用户名和密码信息的来进行验证操作要方便很多。
          
        

解决注入问题

          
            sql = "select * from userinfo where username = %s and password = %s;"%(usr,pwd)
res = cursor.execute(sql,[usr,pwd]) # pymysql 模块会自动将输入的特殊字符删除
          
        

更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论