一、安装导入

#安装
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. node 开发web 登陆功能

    node.js基于express框架搭建一个简单的注册登录Web功能 这个小应用使用到了node.js  bootstrap  express  以及数据库的操作 :使用mongoose对象模型来操作 ...

  2. Linux基础命令---ckconfig

    chkconfig 启动或者关闭系统服务,设置服务的运行级别,该指令并不会立刻启动或者停止服务,而是在开机的时候发生效果. chkconfig提供了一个简单的命令行工具,用于维护/etc/rc[0-6 ...

  3. MySQL Crash Course #10# Chapter 19. Inserting Data

    INDEX BAD EXAMPLE Improving Overall Performance Inserting Multiple Rows INSTEAD OF Inserting a Singl ...

  4. pyDay5

    内容来自廖雪峰的官方网站 1.递归函数的优点是定义简单,逻辑清晰. 2.使用递归函数需要注意防止栈溢出. 3.在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会 ...

  5. zookeeper与卡夫卡集群搭建

    首先这片博客没有任何理论性的东西,只是详细说明kafka与zookeeper集群的搭建过程,需要三台linux服务器. java环境变量设置 zookeeper集群搭建 kafka集群搭建 java环 ...

  6. 冒泡排序法原理讲解及PHP代码示例

    冒泡排序原理 冒泡排序对一个数组里的数字进行排序,把数组里两个相邻的数比较大小,将值小的数放在前面,把大的数往后面放,当然这种排序是升序,即从小到大.举例说明$array = [64, 56, 31, ...

  7. JavaScript DOM 元素属性 状态属性

    JavaScript DOM 元素属性 状态属性 版权声明:未经允许,严禁转载! 元素的属性 核心 DOM 为我们提供了操作元素标准属性的统一 API. 所有属性节点都储存在元素的 attribute ...

  8. IPMB接口协议总结

    IPMB接口协议总结 IPMB,智能平台管理总线, 是ATCA(Advanced Telecom Computing Architecture)先进的电信计算平台的各FRU背板通讯的两组冗余I2C总线 ...

  9. 关于STM32外接4—16MHz晶振主频处理方法

    由于STM32F10x库官方采用的是默认的外接8MHz晶振,因此造成很多用户也采用了8MHz的晶振,但是,8MHz的晶振不是必须的,其他频点的晶振也是可行的,只需要在库中做相应的修改就行.    在论 ...

  10. String和int互相转换,String转float

    String-->int int a=Integer.parseIn(str); int-->String String s= a+""; String-->fl ...