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)

大家都在看

  • 聊聊支付流程的设计与实现逻辑

    新手打怵老手头疼的业务; 一、业务背景 通常在业务体系中,都会或多或少的涉及到支付相关的功能;对于一些经验欠缺同学来说,最紧张的就是面对这类支付结算的逻辑,因为流程中的任何细节问题…

    Linux 2023年6月14日
    085
  • __pycache__

    最近在使用python写一个串口模块的时候,偶然发现运行脚本之后,在工程文件夹下面出现了这样一个文件夹__pycache__,所以就特意到网上查了一下这个文件夹是怎么回事。 &am…

    Linux 2023年6月14日
    0117
  • 全域安全:一种运行时安全管理模型

    前言: 全域安全是一种新的安全管理模型,现在用在Laxcus分布式操作系统上,如果能够在ICT领域全面推广,当下计算机的安全问题,包括西工大的泄密事件,都可以避免了。以下是相关介绍…

    Linux 2023年6月6日
    099
  • mysql 8.0.20 忘记密码,修改密码

    由于mysql更新较快,8.0对比5.7很多操作有了变化,特别修改密码,和忘记密码这一块已经和以前完全不一样了。 一、 忘记密码 1、 在my.cnf 文件中添加skip-gran…

    Linux 2023年6月6日
    0108
  • shell 中使用 diff 比较两条命令的输出

    直接给出命令: diff <(command1) <(command2)< code></(command1)> 原理: 使用了进程替换的语法,…

    Linux 2023年6月14日
    096
  • 假如,程序员面试的时候说真话

    做程序员这么长时间了,经常能够听到一句话:面试造火箭,入职拧螺丝。而且,随着就业环境越来越卷,现在只会造火箭恐怕都不行了,得能造个空间站才行。 回想自己刚毕业那会儿,哪有什么八股文…

    Linux 2023年6月7日
    081
  • k8s/kubeadm 生产环境高可用集群部署

    kubeadm 生产环境集群部署 基本环境配置 kubeadm 安装方式自 1.14 版本以后,安装方法几乎没有任何变化,此文档可以尝试安装最新的 k8s 集群, centos 采…

    Linux 2023年6月14日
    099
  • Redis-Cluster实战–5.使用redis-cli安装

    Redis-Cluster实战–5.使用redis-cli安装 博客分类: redis 缓存 redis-cluster redisCluster指派槽cluster-infom…

    Linux 2023年5月28日
    0101
  • 洛谷P3372–线段树代码模板1

    时空限制:1000ms,128M 数据规模: 对于30%的数据:N Original: https://www.cnblogs.com/ygsworld/p/11279732.ht…

    Linux 2023年6月7日
    0127
  • redis高级

    1 redis高可用 主从复制存在的问题: 1 主从复制,主节点发生故障,需要做故障转移,可以手动转移:让其中一个slave变成master—>哨兵 2 主从复制,只能主…

    Linux 2023年6月14日
    092
  • centos 7 安装KVM

    一、安装KVM 实验环境如下: 虚拟机版本:VMware 12.5.7虚拟机需要开启虚拟化,如下图: 系统版本:CentOS Linux release 7.5.1804 (Cor…

    Linux 2023年6月7日
    095
  • 泛微 OA 前台 GetShell 复现

    自行搭建环境: 漏洞路径: /weaver/weaver.common.Ctrl/.css?arg0=com.cloudstore.api.service.Service_Chec…

    Linux 2023年5月28日
    0103
  • Linux系统解压zip包出现中文乱码问题

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

    Linux 2023年6月7日
    0104
  • Centos-Stream 配置本地yum源和配置阿里云yum源

    镜像下载、域名解析、时间同步请点击阿里云开源镜像站 一、配置本地yum源 1. 挂载iso 2.创建目录并挂载iso 该文件按以下方式修改,有六处更改 [En] The file …

    Linux 2023年5月27日
    0126
  • 免外围电路ESP32/ESP8266系列单片机串口一键下载方案

    一、概述 CH340X、CH343、CH342等USB转串口芯片支持免外围电路ESP32/ESP8266等单片机串口一键下载功能,对此类支持多模式启动的单片机,无需外围三极管等逻辑…

    Linux 2023年6月7日
    0135
  • 零成本搭建个人博客之迁移Pages和域名

    在上文[零成本搭建个人博客之搭建篇]中,我将Hugo博客搭建到 Github Page上,后来考虑到用 Cloudflare cdn加速,干脆就把博客站点迁移到Cloudflare…

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