前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >pymysql模块

pymysql模块

作者头像
HammerZe
发布2022-05-09 18:55:13
9600
发布2022-05-09 18:55:13
举报
文章被收录于专栏:Hammer随笔Hammer随笔

目录

pymysql模块

代码语言:javascript
复制
import pymysql

conn = pymysql.connect(
	host = '127.0.0.1',
    port = 3306,
    user = 'root',
    password = '7410',
    database = 'oldboy',  # 
    charset = 'utf8' # 编码不要写utf-8
)

#  产生一个游标对象
# cursor  = conn.cursor() # 这样返回的结果只返回值,比较乱
cursor  = conn.cursor(cursor=pymysql.cursors.DictCursor) # 返回结果设置成字典的形式,将字段名也返回
sql = 'select*from db1;'

# 执行命令
res = cursor.execute(sql) # 查询返回结果,比如返回多少条  >>5
# print(res) # execute返回的是你当前sql语句所影响的行数,该变返回值一般不用

# 获取命令执行的查询结果
print(cursor.fetchone()) # 只拿一条
print(cursor.fetchall()) # 拿所有数据
print(cursor.fetchmany(3))  # 拿指定的条数

ps:注意拿数据的时候,fetchone、fetchall、fetchmany类似光标移动,取到末尾就没得取了,再取会出问题;

光标移动

  • cursor.scroll(1,’relative’) :相对当前光标位置,移动1位
  • cursor.scroll(1,’absolute’):相对数据起始位置,往后移动一位

sql注入问题

利用一些语法的特性,书写一些特点的语句实现固定的语法

MySQL中 利用的是MySQL的注释语法来钻了漏洞

代码语言:javascript
复制
select * from user where name = 'xxx' or 1=1 -- aasafvs 
'''
日常生活中很多软件在注册的时候都不能含有特殊符号
因为怕构造出特定的语句入侵数据库,不安全
'''

# 敏感的数据不要做拼接

解决sql注入问题

代码语言:javascript
复制
# 将要获取比对的数据,以元组的形式放在sql后面,交给execute方法
sql = 'select * from user where name = %s and password=%s'
res = cursor.execute(sql,(username,password))
if res:
    print('登录成功')
    #print(cursor.fetchall())
else:
    print('登录失败,用户名或密码错误')

完整的sql配置

代码语言:javascript
复制
import pymysql

conn = pymysql.connect(
	host = '127.0.0.1',
    port = 3306,
    user = 'root',
    password = '7410',
    database = 'oldboy',  # 
    charset = 'utf8', # 编码不要写utf-8
	autocommit = True
)
cursor = conn.cursor(pymysql.cursor.DictCursor)
sql = '语句'
row = cursor.execute(sql,('加入的值')) # 加入一条数据,以元组的形式
rows = cursor.executemany(sql,[('插入的值1'),('插入的值2'),('插入的值3')]) # 插入多条数据 
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-04-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • pymysql模块
    • 光标移动
    • sql注入问题
      • 解决sql注入问题
      • 完整的sql配置
      相关产品与服务
      云数据库 SQL Server
      腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档