pymysql模块的使用

pymysql模块的使用

import pymysql

1、连接数据库
conn = pymysql.connect(
        user='root',  # The first four arguments is based on DB-API 2.0 recommendation.

        password="123",
        host='127.0.0.1',
        database='db1',
        port=3306,)

2、产生游标
cursor = conn.cursor()
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)  # 返回结果设置成字典的形式,将字段名也返回

3、书写sql语句
sql = 'create table test1(name varchar(4), age int);'
sql = 'select * from test1;'

4、执行命令,返回值是所影响的行数,并不常用
res = cursor.execute(sql)
print(res)

5、获取结果
print(cursor.fetchone())  # 只拿一条
print(cursor.fetchall())  # 拿所有数据
print(cursor.fetchmany(3))  # 拿指定的条数

光标移动

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

sql注入问题

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

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

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

敏感的数据不要做拼接

解决sql注入问题

将要获取比对的数据,以元组的形式放在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配置

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')]) # 插入多条数据

Original: https://www.cnblogs.com/elijah-li/p/16286779.html
Author: elijah_li
Title: pymysql模块的使用

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/612110/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Java50个关键字之static

    关键字static主要有两种作用:第一,为某特定数据类型或对象分配单一的存储空间,而与创建对象的个数无关。第二,希望某个方法或属性与类而不是对象关联在一起,也就是说,在不创建对象的…

    Linux 2023年6月7日
    0103
  • jmeter beanshell 从文件中获取随机参数

    loadruner 参数化有个功能,可以设置在脚本每次出现参数时,自动更换参数值。在做jmeter自动化测试过程中,同一个请求中出现多个参数值,如一个接口可以添加n个信息的请求 […

    Linux 2023年5月28日
    0219
  • 微服务架构项目搭建过程中的Mysql安装和相关问题

    搭建微服务架构的过程中需要使用Mysql数据库,Mysql数据库搭建着实不是一个容易的事情,会碰到各种各样的问题,如果没有一个安装数据库的思路真的很难把数据库安装好,并且掉入到安装…

    Linux 2023年6月14日
    0112
  • CTF简介

    最近在学习渗透测试,后来发现CTF很有趣,发现对学习有所帮助,于是找了几个网站,下面推荐几个我觉得不错的网站 https://www.ctfhub.com/#/index http…

    Linux 2023年6月7日
    0102
  • 《拉钩课程 – 重学操作系统 – 计算机组成原理》

    1、芯片是怎么工作的呢?电能供给给芯片,芯片中的一种电子元件晶振(也就是石英晶体)通电后产生震荡,震荡会产生频率稳定的脉冲信号。通常这是一种高频的脉冲信号,每秒可达百万次。然后,我…

    Linux 2023年5月27日
    095
  • centos7 安装MariaDB 10.6

    镜像下载、域名解析、时间同步请点击阿里云开源镜像站 背景 centos7使用yum install mariadb-server命令安装的默认版本是5.5的,这是因为系统默认源只有…

    Linux 2023年5月27日
    0375
  • Rprop 与 RMSprop 优化器

    https://www.cnblogs.com/setdong/p/16508415.html 1. Rprop 在 full-batch optimization 中, 一些梯度…

    Linux 2023年6月7日
    088
  • rsync

    Rsync-远程同步 简介 rsync是linux系统下的数据镜像备份工具。使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH、rsync主机同…

    Linux 2023年6月13日
    074
  • WEB自动化-03-Cypress 测试框架概述

    3 Cypress 测试框架概述 3.1 Cypress 默认文件结构 在Cypress安装完成后,其生成的默认文件目录如下所示: 3.1.1 Fixtures Fixture又称…

    Linux 2023年6月7日
    0117
  • 子网掩码、前缀长度、IP地址数的换算

    子网掩码、前缀长度、IP地址数的换算 子网掩码 子网掩码只有一个功能,就是将IP地址划分为网络地址和主机地址两部分。 如同现实生活中的通讯地址,可以看作省市部分和具体门牌号部分。相…

    Linux 2023年6月6日
    0251
  • 定时任务调度

    一、crond任务调度 概述: 使用crontab 指令进行定时任务的设置,任务调度是指系统在某个时间端执行的特定任务或程序,例如:病毒扫描,数据库备份等 基本语法: cronta…

    Linux 2023年6月6日
    0135
  • MySQL安装卸载、idea中Database的使用、常用的sql语句

    MySQL安装卸载 MySQL安装 在下面的 资源链接中下载MySQL软件 压缩包(绿色版)…

    Linux 2023年6月6日
    0133
  • python 练习题:将列表中的大写字母转换成小写

    将列表中的大写字母转换成小写如果list中既包含字符串,又包含整数,由于非字符串类型没有lower()方法,L1 = [‘Hello’, ‘World’, 18, ‘Apple’,…

    Linux 2023年6月8日
    0146
  • 实用!这17个运维技巧,收藏起来随时备用~

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Linux 2023年6月7日
    0110
  • Linux03:三种软件安装方式及基本环境安装(狂神说)

    linux的三种软件安装及基本环境安装 安装软件通常有三种方式: [En] There are generally three ways to install software: …

    Linux 2023年5月27日
    096
  • samba服务设置与访问共享文件夹

    samba服务设置与访问共享文件夹 linux设置文件夹共享 windows连接共享文件夹(运行->//IP/route) linux连接共享文件夹 1、基本服务安装与配置 …

    Linux 2023年5月27日
    0110
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球