一、安装导入

#安装
pip3 install pymysql

二、使用

1 .基本使用
import pymysql
# 链接,拿到游标
conn=pymysql.connect(host='local',user='root',password='963.',database='day47',charset='utf8')
cursor=conn.cursor() #拿到游标,即mysql> # 执行sql
sql='select * from user where id>1'
rows=cursor.execute(sql) #拿到的是受影响的行数---记录数
print('%s rows in set (0.00 sec)' %rows) cursor.close()
conn.close() 2 .小练习:
user=input('-->:').strip()
pwd=input('-->:').strip() # 链接,拿到游标
conn=pymysql.connect(host='localhost',user='root',password='963.',database='day47')
cursor=conn.cursor() #拿到游标,即mysql> # 执行sql
sql='select * from user where name="%s" and password="%s";'%(user,pwd)
rows=cursor.execute(sql) #拿到的是受影响的行数---记录数
if rows:
print('welcome')
else:
print('error') cursor.close()
conn.close()
3:sql注入
注意:符号--会注释掉它之后的sql
#1、sql注入之:用户存在,绕过密码
egon" -- 任意字符 #2、sql注入之:用户不存在,绕过用户与密码
xxx" or 1=1 -- 任意字符
import pymysql
user=input('用户名>>: ').strip()
pwd=input('密码>>: ').strip()
conn=pymysql.connect(host='localhost',user='root',password='',database='day47')
cursor=conn.cursor() sql='select * from user where user="%s" and password="%s";' %(user,pwd)
print(sql)
rows=cursor.execute(sql)
cursor.close()
conn.close()
if rows:
print('登录成功')
else:
print('登录失败')

绕过密码登录:

绕过用户和密码登录:

4.解决sql注入

import pymysql
user=input('用户名>>: ').strip()
pwd=input('密码>>: ').strip()
conn=pymysql.connect(host='localhost',user='root',password='',database='day47')
cursor=conn.cursor() sql='select * from user where user=%s and password=%s;'
rows=cursor.execute(sql,[user,pwd]) #可以用列表和元组的形式
print(rows)
cursor.close()
conn.close()
if rows:
print('登录成功')
else:
print('登录失败')

三、增删改查

1 增删改
import pymysql
conn=pymysql.connect(host='localhost',user='root',password='',database='day47',charset='utf8')
cursor=conn.cursor() sql='insert into user(user,password) values(%s,%s);'
rows=cursor.execute(sql,('alex','')) #插入一条记录
rows=cursor.executemany(sql,[('yuanhao',''),('laowu',''),('kgf','')]) #插入多条记录
print('%s row in set (0.00 sec)' %rows)
conn.commit() #提交给数据库 cursor.close()
conn.close()
2 查:fetchone,fetchmany,fetchall

import pymysql
conn=pymysql.connect(host='localhost',user='root',password='',database='day47',charset='utf8')
cursor=conn.cursor() sql='select * from user;'
rows=cursor.execute(sql)
查单条
res1=cursor.fetchone()
res2=cursor.fetchone()
res3=cursor.fetchone() #查出结果是元组的形式
print(res1[0])
print(res2)
print(res3) 结果:
1
(2, 'alex', 456)
None 查多条
print(cursor.fetchmany(3))
print(cursor.fetchone()) 结果:
((1, 'egon', 123), (2, 'alex', 456))
None 查所有
print(cursor.fetchall())
print(cursor.fetchone()) 结果:
((1, 'egon', 123), (2, 'alex', 456))
None 光标的移动 -- 绝对移动
print(cursor.fetchall())
cursor.scroll(0,mode='absolute')
print(cursor.fetchone())
cursor.scroll(1,mode='absolute')
print(cursor.fetchone()) 结果:
((1, 'egon', 123), (2, 'alex', 456))
(1, 'egon', 123)
(2, 'alex', 456) cursor.scroll(1,mode='relative') --相对移动
print(cursor.fetchone()) 结果:
(2, 'alex', 456)
None
3 获取插入的最后一条数据的自增ID
import pymysql
conn=pymysql.connect(host='localhost',user='root',password='963.',database='day47',charset='utf8')
cursor=conn.cursor() sql='insert into user(name,password) values(%s,%s);'
rows=cursor.execute(sql,('alex',123))
# rows=cursor.executemany(sql,[('yuanhao','123'),('laowu','123'),('kgf','12323')])
conn.commit()
print(cursor.lastrowid) #结果 5 cursor.close()
conn.close()

python-day47--pymysql模块的更多相关文章

  1. python的pymysql模块简介

    一.介绍 在python中用pymysql模块来对mysql进行操作,该模块本质就是一个套接字客户端软件,使用前需要事先安装 pip3 install pymysql 二.操作简介 import py ...

  2. Python进阶----pymysql模块的使用,单表查询

    Python进阶----pymysql模块的使用,单表查询 一丶使用pymysql ​   ​   1.下载pymysql包: pip3 install pymysql ​​   ​   2.编写代码 ...

  3. python 通过 pymysql模块 操作 mysql 数据库

    Python 中操作 MySQL 步骤 安装模块 pip install pymysql 引入模块 在py文件中引入pymysql模块 from pymysql import * Connection ...

  4. python之pymysql模块简单应用

    众所周知,想要在python程序中执行SQL语句需要使用第三方模块:pymysql. 下面,我将为大家简述一下pymysql第三方库的安装到使用的大体流程. pymysql的安装 1.windows系 ...

  5. python之pymysql模块学习(待完善...)

    pymysql介绍 pymysql是在python3.x版本中用于连接mysql服务器的一个库.python2中则使用mysqldb. 安装方法: pip install pymysql 使用实例: ...

  6. python 连接数据库 pymysql模块的使用

    一 Python3连接MySQL 本文介绍Python3连接MySQL的第三方库--PyMySQL的基本使用. 1 PyMySQL介绍 PyMySQL 是在 Python3.x 版本中用于连接 MyS ...

  7. Python的pymysql模块

    PyMySQL是在Python3.x版本中用于连接MySQL服务器的一个库,Python2中则使用MySQLDB. 1.基本语法 # 导入pymysql模块 import pymysql # 连接da ...

  8. python 调用pymysql模块遇到\转义问题解决办法

    1.问题情况 本来存入mysql的是字典,有汉字,由于python版本是2.7,所以在json的时候把我的值变成了unicode,那么在调用pymysql的时候,mysql给我转义取消了. 存之前: ...

  9. Python中pymysql模块详解

    安装 pip install pymysql 使用操作 执行SQL #!/usr/bin/env pytho # -*- coding:utf-8 -*- import pymysql # 创建连接 ...

  10. python之pymysql模块

    模块安装 pip install pymysql 执行sql语句 import pymysql #通过pymysql下的connect函数来建立一个传输通道,连接本地mysql的所以host地址是12 ...

随机推荐

  1. Linux基础命令---yes

    yes 反复的输出指定的字符串,直到手动停止.此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.SUSE.openSUSE.Fedora.   1.语法      yes [STR ...

  2. web前端----jQuery动画效果

    动画效果 // 基本 show([s,[e],[fn]]) hide([s,[e],[fn]]) toggle([s],[e],[fn]) // 滑动 slideDown([s],[e],[fn]) ...

  3. cursor图标自定义

    cursor: url(./images/favicon.ico), auto; 首先auto必须加上,其次必须使用ico文件,目前来说ico文件没有兼容性问题,ico格式怎么转? 传送门:http: ...

  4. mysql 批处理文件出错后继续执行

    在升级批处理sql脚本的时候,由于各种编写的不规范.不可重复执行,我们通常希望在sql脚本出错后不中止,而是执行完成.虽然这些问题可通过编写可重复执行的mysql存储过程比如add_column/dr ...

  5. Python3基础 help 查看内置函数说明

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  6. redis安装使用配置

    一.安装前的准备 下载redis http://redis.io/download https://github.com/mythz/redis-windows 下载Windows版客户端net版sd ...

  7. datagridview控件的使用

    http://home.cnblogs.com/group/topic/40730.html datagridview定位到最后一行的方法 this.dataGridView2.CurrentCell ...

  8. Unity3D学习笔记(五):坐标系、向量、3D数学

    Unity复习 using System.Collections; using System.Collections.Generic; using UnityEngine; public class ...

  9. 为什么我的电脑win系统没有便笺功能?为什么我在开始菜单里找不到便笺功能?

    有些网友表示,为什么我的电脑没有便笺功能?为什么我在开始菜单里找不到便笺功能? 从问题可以基本判断出来,这些网友使用的Win7版本有可能是买笔记本或者台式电脑时预装的Win7家庭普通版或者Win7精简 ...

  10. Tomcat下载及配置(windows系统)

    1.去官网下载 下载安装版的直接安装即可,下载解压版(推荐)的往下看. 2.win键+R键,输入sysdm.cpl点击确定,弹出系统属性窗口,选择菜单栏的高级选项卡,然后点击环境变量. 3.在弹出的窗 ...