数据库操作——pymysql模块
一
import pymysql conn=pymysql.connect(
host='localhost',
port=3306,
user='zuo',
password='',
database='day46',
charset='utf8',
)
name=input('name:')
pwd=input('pwd:')
# cur=conn.cursor() #获取游标 执行完毕返回的结果集默认以元组显示
cur=conn.cursor(cursor=pymysql.cursors.DictCursor) #设置执行完完毕返回的结果以字典显示
print('cur',cur)
sql='select * from employee WHERE name=%s AND pwd=%s;'
row=cur.execute(sql,(name,pwd)) #row是获取结果的行数
print('row',row)
print(cur.fetchone()) #获取记录
if row:
print('登录成功')
else:
print('登录失败')
输出:
name:egon
pwd:123
cur <pymysql.cursors.DictCursor object at 0x0000011ADBC30F28>
row 1
{'id': 2, 'name': 'egon', 'pwd': ''}
登录成功
示例二
import pymysql conn=pymysql.connect(
host='localhost',
port=3306,
user='zuo',
password='',
database='day46',
charset='utf8',
)
cur=conn.cursor(cursor=pymysql.cursors.DictCursor) #设置执行完完毕返回的结果以字典显示
sql='select * from employee;'
row=cur.execute(sql)
cur.scroll(1,mode='absolute')#绝对移动
cur.scroll(1,mode='relative')#相对移动
print(cur.fetchone()) #fetchone() fetchmany(4) fetchall()
输出:
{'id': 2, 'name': 'egon', 'pwd': ''}
示例三
import pymysql conn=pymysql.connect(
host='localhost',
port=3306,
user='zuo',
password='',
database='day46',
charset='utf8',
)
cur=conn.cursor(cursor=pymysql.cursors.DictCursor) #设置执行完完毕返回的结果以字典显示
sql='insert into employee(name,pwd) VALUES ("yuanhao","123"),("wenzhou","123"),("alex","123"),("egon","123");'
row=cur.execute(sql)
conn.commit() #commit Commit changes to stable storage生效保存到硬盘中
print(cur.lastrowid)
二 sql注入
SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据,致使非法数据侵入系统。
比如:简单来说--代表注释的意思
注意:符号--会注释掉它之后的sql,正确的语法:--后至少有一个任意字符
根本原理:就根据程序的字符串拼接name='%s',我们输入一个xxx' -- haha,用我们输入的xxx加'在程序中拼接成一个判断条件name='xxx' -- haha'
最后那一个空格,在一条sql语句中如果遇到select * from t1 where id > 3 -- and name='egon';则--之后的条件被注释掉了 #1、sql注入之:用户存在,绕过密码
egon' -- 任意字符 #2、sql注入之:用户不存在,绕过用户与密码
xxx' or 1=1 -- 任意字符

数据库操作——pymysql模块的更多相关文章
- 数据库入门-pymysql模块的使用
一.pymysql模块安装 由于本人的Python版本为python3.7,所以用pymysql来连接数据库(mysqldb不支持python3.x) 方法一: #在cmd输入 pip3 instal ...
- Python连接MySQL数据库之pymysql模块使用
安装PyMySQL pip install pymysql PyMySQL介绍 PyMySQL是在python3.x版本中用于连接MySQL服务器的一个库,2中则使用mysqldb. Django中也 ...
- 数据库中pymysql模块的使用
pymysql 模块 使用步骤: 核心类Connect链接用和Cursor读写用 1. 与数据库服务器建立链接 2. 获取游标对象(用于发送和接收数据) 3. 用游标执行sql语句 4. 使用fetc ...
- Python之路【第二十五篇】:数据库之pymysql模块
数据库进阶 一.pymysql模块 pymysql是Python中操作Mysql的模块,其使用的方法和py2的MySQLdb几乎相同. 二.pymysql模块安装 pip install pymysq ...
- Mysql(九):Python连接MySQL数据库之pymysql模块使用
Python3连接MySQL 本文介绍Python3连接MySQL的第三方库--PyMySQL的基本使用. PyMySQL介绍 PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服 ...
- Python连接MySQL数据库之pymysql模块
pymysql 在python3.x 中用于连接MySQL服务器的一个库:Python2中则使用mysqldb pymysql的模块的基本的使用 # 导入pymysql模块 import pymysq ...
- python数据库操作pymysql
安装数据库: pip3 install pymysql 进行数据库的更新.插入.查询等操作: #!/usr/bin/python3.4 # -*- coding: utf-8 -*- #------- ...
- 自动化测试之数据库操作pymysql
1.下载并导入pymysql 2.配置参数连接mysql db = pymysql.connect(**config) config = { 'host': str(host), 主机地址 'user ...
- python数据库操作——sqlite3模块
# -*- coding: utf-8 -*- ''' Version : Python27 Author : Spring God Date : 2012-4-26 ''' import sqlit ...
随机推荐
- CORS的原理及应用
CORS的原理及应用 CORS是跨站资源共享,同样是解决浏览器的同源策略 其本质是设置响应头,使得浏览器允许跨域请求. 第三方网站返回数据的时候在浏览器的响应头中添加允许的域名,允许所有的用* 1 简 ...
- Python——字典dict()详解
一.字典 字典是Python提供的一种数据类型,用于存放有映射关系的数据,字典相当于两组数据,其中一组是key,是关键数据(程序对字典的操作都是基于key),另一组数据是value,可以通过key来进 ...
- 安装mysqlclient失败
环境:python3.6 sudo apt-get install python3.6-dev sudo apt-get install default-libmysqlclient-dev 参考:h ...
- 【费用流】bzoj1834: [ZJOI2010]network 网络扩容
还是稍微记一下这个拆点模型吧 Description 给定一张有向图,每条边都有一个容量C和一个扩容费用W.这里扩容费用是指将容量扩大1所需的费用. 求: 1.在不扩容的情况下,1到N的最大流: ...
- python入门:in 的用法(它在不在这个字符串里面)
#!/usr/bin/env python # -*- coding:utf-8 -*- #in 的用法(它在不在这个字符串里面) #ret(返回,译音:ruai特) #给s赋值为字符串“Alex S ...
- destoon 信息发布表单提交验证
sell 模块的form表单如下: <form method="post" id="dform" action="?" target= ...
- 嵌入式入门学习笔记3:[转]编译linux
摘自:https://blog.csdn.net/baidu_24256693/article/details/80115354 编译Linux是什么意思? Linux内核是Linux操作系统的核心, ...
- Linux学习-透过 systemctl 管理服务
透过 systemctl 管理单一服务 (service unit) 的启动/开机启动与观察状态 一般来说,服务的启动有两个阶段,一 个是『开机的时候设定要不要启动这个服务』, 以及『你现在要不要启动 ...
- App架构经验总结
作者:李纪钢,网名 Keegan小钢,博客地址:http://keeganlee.me.目前在广州日报新媒体有限公司,负责移动产品的研发工作. 关于:本文整理自CSDN架构主题月子活动金牌架构师微课堂 ...
- CSS(非布局样式)
CSS(非布局样式) 问题1.CSS样式(选择器)的优先级 1.计算权重 2.!important 3.内联样式比外嵌样式高 4.后写的优先级高 问题2.雪碧图的作用 1.减少 HTTP 请求数,提高 ...