zoukankan      html  css  js  c++  java
  • pymysql基本操作

    pymysql操作说明

    1.查询数据

    import pymysql
    
    conn = pymysql.connect(
        user = 'root',#用户名
        password ='123',#用户密码
        host = '127.0.0.1',#ip地址
        port =3306,#端口
        charset = 'utf8',#编码
        database = 'day36'#库名
    )
    cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)#产生游标
    #cursor=pymysql.cursors.DictCursor  将查询出来的结果制成字典的行式返回
    sql ="select * from course"
    res =cursor.execute(sql)#查询可以控制的行数
    print(res)
    ret =cursor.fetchone()#只获取查询结果中的一条数据
    print(cursor.fetchmany())#查询多条数据,可添加参数,更改查询条数
    print(cursor.fetchmany(2))
    print(cursor.fetchall())#查询所有数
    

    光标移动

    数据查询光标会根据读取内容向后移动,相当于文件操作

    可以通过光标移动

    相对移动:

    cursor.scroll(1,'relative')#基于现在指针的位置向后移动1条数据

    cursor.scroll(1,'absolute')#基于起始位置,向后移动1条数据

    进行增,删,改需要确认操作

    conn = pymysql.connect(
        user = 'root',
        passwd = '123456',
        db = 'day36',
        host = '127.0.0.1',
        port = 3306,
        charset = 'utf8',
        autocommit = True  # 自动提交确认
    )
    

    增加数据

    sql ='insert into user(name,password)value("123",123)'
    res = cursor.execute(sql)
    

    修改数据

    sql ='update user set name="4567" where password=123'
    res = cursor.execute(sql)
    

    删除数据

    sql='delete from user where name="345"'
    res = cursor.execute(sql)
    

    sql注入问题

    import pymysql
    conn = pymysql.connect(
        user = 'root',
        password = '123',
        host = '127.0.0.1',
        port = 3306,
        charset = 'utf8',
        database = 'day36',
        autocommit = True
    )
    cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
    usernamne =input('请输入账户')
    password = input("密码")
    sql ='select * from user where name="%s"and password="%s"'%(usernamne,password)
    print(sql)
    res =cursor.execute(sql)
    if res:
        print(res)
    else:
        print('错误')
    

    知道账户

    请输入账户xxx" or 1=1 -- asdf asd f
    # 密码53452
    # select * from user where name="xxx" or 1=1 -- asdf asd f"and password="41235"
    

    不知道账户

    # 请输入账户4567" -- asdfasdfasdf
    # 密码52345
    # select * from user where name="4567" -- asdfasdfasdf"and password="52345"
    

    为了结局注入问题利用execute进行其操作

    cursor.execute(sql,(username,password))
    
  • 相关阅读:
    IntelliJ IDEA插件-常用插件
    Java代码规范和质量检查插件-Checkstyle(官方资源)
    Google代码风格配置文件(Java)(IDEA/Eclipse)
    Java中常量定义在interface和class的区别(转)
    Mac下安装Iterm2终端工具
    Ubuntu 16.04安装IntelliJ出品的数据库管理工具DataGrip
    Ubuntu 16.04安装JAD反编译工具(Java)
    Java中String字符串toString()、String.valueOf()、String强转、+ ""的区别
    微信开发(一)基于Wx-java的微信分享功能
    spring@value取不到值的几种情况
  • 原文地址:https://www.cnblogs.com/fxsm/p/12051049.html
Copyright © 2011-2022 走看看