zoukankan      html  css  js  c++  java
  • pymysql模块初见

    一.pymysql的基本使用方法

    import pymysql
    
    db = pymysql.connect(
        host = '127.0.0.1',
        port = 3306,
        user = 'root',
        password = '123',
        database = 'day36',
        charset = 'utf8',
    # 写成了utf-8会直接报错
        autocommit = True
    # 这个参数配置完成后  增删改操作都不需要在手动加conn.commit了
    )
    
    # cursor = db.cursor()
    # 产生一个游标对象  以元组的形式进行返回
    cursor = db.cursor(pymysql.cursors.DictCursor)
    # 产生一个游标对象  以字典的形式返回查询出来的数据 键是表的字段  值是表的字段对应的信息
    
    sql = 'select * from emp'
    
    res = cursor.execute(sql)
    # 使用 execute() 方法执行 SQL,返回值是查询到的数据条数
    print(res)
    if res:
        # print(cursor.fetchone())
        # 获取一条数据,返回值字典
        # cursor.scroll(0,'absolute')
        #控制光标移动,相对于起始位置,往后移动多少
        # cursor.scroll(1,'relative')
        # 基于当前光标的位置,正数向后移动,负数向前移动
        # print(cursor.fetchall())
        #获取所有数据,返回值列表套字典
        print(cursor.fetchmany())
        # 不加参数返回一条,加了返回指定条数
    else:
        print('error')
    db.close()
    View Code

    ps:想要获取增删改的权限,需要在execute之后添加conn.commit提交

    二.sql注入问题

    import pymysql
    
    db = pymysql.connect(
        host = '127.0.0.1',
        port = 3306,
        user = 'root',
        password = '123',
        database = 'day36',
        charset = 'utf8',
    # 写成了utf-8会直接报错
        autocommit = True
    # 这个参数配置完成后  增删改操作都不需要在手动加conn.commit了
    )
    
    # cursor = db.cursor()
    # 产生一个游标对象  以元组的形式进行返回
    cursor = db.cursor(pymysql.cursors.DictCursor)
    # 产生一个游标对象  以字典的形式返回查询出来的数据 键是表的字段  值是表的字段对应的信息
    
    
    name = input(">>:").strip()
    sex=  input(">>:").strip()
    sql = 'select * from emp where name="%s"and sex="%s"' %(name,sex)
    print(sql)
    res = cursor.execute(sql)
    # 使用 execute() 方法执行 SQL,返回值是查询到的数据条数
    print(cursor.fetchall())
    # sql注入 就是利用注释等具有特殊意义的符号 来完成一些骚操作
    #
    # 后续写sql语句  不要手动拼接关键性的数据
    # res = cursor.execute(sql,(name,sex))
    # 而是让excute帮你去做拼接
    View Code
  • 相关阅读:
    c#项目架构搭建经验
    c++ template怎么使用及注意事项
    c++怎么将一个类,拆分出接口类,和实现类
    c++l类
    错过C++
    Fixed 鸟粪一样的TreeView下的NodeMouseDoubleClick Bug
    Oracle 12C 新特性之表分区带 异步全局索引异步维护(一次add、truncate、drop、spilt、merge多个分区)
    Oracle 12C 新特性之在线重命名、迁移活跃的数据文件
    Oracle 12C 新特性之级联truncate
    Oracle 12C 新特性之扩展数据类型(extended data type)
  • 原文地址:https://www.cnblogs.com/Cpsyche/p/11397422.html
Copyright © 2011-2022 走看看