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模块的更多相关文章

  1. 数据库入门-pymysql模块的使用

    一.pymysql模块安装 由于本人的Python版本为python3.7,所以用pymysql来连接数据库(mysqldb不支持python3.x) 方法一: #在cmd输入 pip3 instal ...

  2. Python连接MySQL数据库之pymysql模块使用

    安装PyMySQL pip install pymysql PyMySQL介绍 PyMySQL是在python3.x版本中用于连接MySQL服务器的一个库,2中则使用mysqldb. Django中也 ...

  3. 数据库中pymysql模块的使用

    pymysql 模块 使用步骤: 核心类Connect链接用和Cursor读写用 1. 与数据库服务器建立链接 2. 获取游标对象(用于发送和接收数据) 3. 用游标执行sql语句 4. 使用fetc ...

  4. Python之路【第二十五篇】:数据库之pymysql模块

    数据库进阶 一.pymysql模块 pymysql是Python中操作Mysql的模块,其使用的方法和py2的MySQLdb几乎相同. 二.pymysql模块安装 pip install pymysq ...

  5. Mysql(九):Python连接MySQL数据库之pymysql模块使用

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

  6. Python连接MySQL数据库之pymysql模块

    pymysql 在python3.x 中用于连接MySQL服务器的一个库:Python2中则使用mysqldb pymysql的模块的基本的使用 # 导入pymysql模块 import pymysq ...

  7. python数据库操作pymysql

    安装数据库: pip3 install pymysql 进行数据库的更新.插入.查询等操作: #!/usr/bin/python3.4 # -*- coding: utf-8 -*- #------- ...

  8. 自动化测试之数据库操作pymysql

    1.下载并导入pymysql 2.配置参数连接mysql db = pymysql.connect(**config) config = { 'host': str(host), 主机地址 'user ...

  9. python数据库操作——sqlite3模块

    # -*- coding: utf-8 -*- ''' Version : Python27 Author : Spring God Date : 2012-4-26 ''' import sqlit ...

随机推荐

  1. sessionStorage对象

    sessStorage对象是一个会话形式的数据存储,当用户关闭浏览器的窗口后,数据就会被删除. 实例: <!DOCTYPE html><html><head> &l ...

  2. UIViewController 的 edgesForExtendedLayout、automaticallyAdjustsScrollViewInsets属性

    1.有时你命名设置了某控件的y坐标为0,确总是被导航栏遮挡住,如下: UILabel *label = [[UILabel alloc] init];    label.text = @"请 ...

  3. JavaScript中面向对象的三大特性(一个菜鸟的不正经日常)

    经过几天的学习,把jQuery给啃会了,但是运用的还不算特别熟练,总感觉自己在JavaScript方面的基础十分欠缺,所以继续拾起JavaScript,开始更好的编程之旅~ 今天学的是JavaScri ...

  4. 【费用流】loj#545. 「LibreOJ β Round #7」小埋与游乐场

    好像现在看来这个缩点的思路挺清晰啊 题目描述 有两个非负整数组成的可重集合 $A$ 和 $B$. 现在你可以对 $A$ 中至多 $k$ 个元素进行操作.操作方法为:设你准备操作且未被操作过的 $A$ ...

  5. LNMP的环境搭建

    新装的Linux 机器,还没有来得及安装网站环境,这篇文章就是记录一下自己安装LNMP的一般步骤. 之前在Laravel视频中看过这段的讲解,后来也试着安装过,基本的命令不算是熟练掌握,所以还要看看之 ...

  6. windows server 服务器 环境配置

    自动备份 xcopy d:\web\zhiku\*.* d:\bak\web\zhiku\%date:~,4%%date:~5,2%%date:~8,2%\ /S /I

  7. paper:synthesizable finite state machine design techniques using the new systemverilog 3.0 enhancements 之 FSM Coding Goals

    1.the fsm coding style should be easily modifiable to change state encoding and FSM styles. FSM 的的 状 ...

  8. 【php】instanceof

    instanceof 的使用还有一些陷阱必须了解.在 PHP 5.1.0 之前,如果要检查的类名称不存在,instanceof 会调用__autoload().另外,如果该类没有被装载则会产生一个致命 ...

  9. Anaconda安装和环境的搭建

    Anaconda安装 在官网上下载最新的Anaconda https://www.anaconda.com/distribution/ 我使用的是2018.12,Python 3.7这个版本的. 安装 ...

  10. python numpy复制array

    numpy快速复制array 前段时间想到一个算法,需要实现array的自我复制,直接上代码,两种复制方式, 整体复制 a=[[10,10,50,50],[10,10,40,50]] np.tile( ...