python-day47--pymysql模块
一、安装导入
#安装
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模块的更多相关文章
- python的pymysql模块简介
一.介绍 在python中用pymysql模块来对mysql进行操作,该模块本质就是一个套接字客户端软件,使用前需要事先安装 pip3 install pymysql 二.操作简介 import py ...
- Python进阶----pymysql模块的使用,单表查询
Python进阶----pymysql模块的使用,单表查询 一丶使用pymysql 1.下载pymysql包: pip3 install pymysql 2.编写代码 ...
- python 通过 pymysql模块 操作 mysql 数据库
Python 中操作 MySQL 步骤 安装模块 pip install pymysql 引入模块 在py文件中引入pymysql模块 from pymysql import * Connection ...
- python之pymysql模块简单应用
众所周知,想要在python程序中执行SQL语句需要使用第三方模块:pymysql. 下面,我将为大家简述一下pymysql第三方库的安装到使用的大体流程. pymysql的安装 1.windows系 ...
- python之pymysql模块学习(待完善...)
pymysql介绍 pymysql是在python3.x版本中用于连接mysql服务器的一个库.python2中则使用mysqldb. 安装方法: pip install pymysql 使用实例: ...
- python 连接数据库 pymysql模块的使用
一 Python3连接MySQL 本文介绍Python3连接MySQL的第三方库--PyMySQL的基本使用. 1 PyMySQL介绍 PyMySQL 是在 Python3.x 版本中用于连接 MyS ...
- Python的pymysql模块
PyMySQL是在Python3.x版本中用于连接MySQL服务器的一个库,Python2中则使用MySQLDB. 1.基本语法 # 导入pymysql模块 import pymysql # 连接da ...
- python 调用pymysql模块遇到\转义问题解决办法
1.问题情况 本来存入mysql的是字典,有汉字,由于python版本是2.7,所以在json的时候把我的值变成了unicode,那么在调用pymysql的时候,mysql给我转义取消了. 存之前: ...
- Python中pymysql模块详解
安装 pip install pymysql 使用操作 执行SQL #!/usr/bin/env pytho # -*- coding:utf-8 -*- import pymysql # 创建连接 ...
- python之pymysql模块
模块安装 pip install pymysql 执行sql语句 import pymysql #通过pymysql下的connect函数来建立一个传输通道,连接本地mysql的所以host地址是12 ...
随机推荐
- MySQL 字符串拼接
MySQL 字符串拼接 在Mysql 数据库中存在两种字符串连接操作.具体操作如下 1. CONCAT(string1,string2,…) 说明 : string1,string2代表字符串,c ...
- Linux 虚拟机安装vmware tools
Linux Vmware tools安装步骤 1 在 vSphere Client 清单中,右键单击虚拟机,然后选择电源 > 开启. 2 单击控制台选项卡以确定客户机操作系统启动成功,并在需 ...
- c++ 11开始语言本身和标准库支持并发编程
c++ 11开始语言本身和标准库支持并发编程,意味着真正要到编译器从语言和标准库层面开始稳定,估计得到17标准出来.14稳定之后的事情了,根据历史经验,新特性的引入到稳定被广泛采用至少要一个大版本的跨 ...
- Python3基础 str title 单词首字母大写,其余均为小写
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
- HDU 4819 Mosaic (二维线段树&区间最值)题解
思路: 二维线段树模板题,马克一下,以后当模板用 代码: #include<cstdio> #include<cmath> #include<cstring> #i ...
- 批量启动application pool
在powershell中执行 Get-ChildItem IIS:\AppPools | where {$_.state -eq "Stopped"} | Start-WebApp ...
- BZOJ4401: 块的计数 思维题
Description 小Y最近从同学那里听说了一个十分牛B的高级数据结构——块状树.听说这种数据结构能在sqrt(N)的时间内维护树上的各种信息,十分的高效.当然,无聊的小Y对这种事情毫无兴趣,只是 ...
- nginx配置二级域名
我在我的服务器上面跑了两个node应用程序,分别一个端口2368跑的是ghost博客,一个端口8000跑的是我的demo程序.想要一级域名zhangruojun.com用来访问博客,二级域名demo. ...
- (转)Nuts and Bolts of Applying Deep Learning
Kevin Zakka's Blog About Nuts and Bolts of Applying Deep Learning Sep 26, 2016 This weekend was very ...
- BZOJ 1006: [HNOI2008]神奇的国度(弦图染色)
http://www.lydsy.com/JudgeOnline/problem.php?id=1006 题意: 思路: 这个就是弦图染色问题,弦图啥的反正我也不懂,具体看论文https://wenk ...