pymsql模块

pymsql模块

  • 补充 cmd 常用命令

    • pip —V 查看当前pip版本
    • pip list 查看当前Python解释器环境中安装的第三方包
  • 先cmd中下载pip install pymysql

  • sql注入问题

    • sql语句不能自己拼接,应该使用模块的方法来拼接。
  • 在pycharm中:

    • 基本步骤

    • # 1.导入数据库
      import pymysql
      name = input("请输入账户:")
      pwd = input("请输入密码:")
      
      # 2.连接数据库
      conn = pymysql.connect(
          host='127.0.0.1',    # ip地址
          port=3306,           # 一般都是3306
          user='root',         # 账户
          password='123',      # 密码
          database='day43',    # 库名
          charset='utf8'       # 不能使用-
      )
      # 3.获取光标
      cursor = conn.cursor()
      # 4. 执行sql语句
      sql = "select * from userinfo where username='%s' and password ='%s'"   #  验证
      sq2 = "insert into userinfo(username,password) values (%s,%s)"  # 增
      sq3 = "delete from userifo where username = %s"  # 删
      sq4 = "update userinfo set password = %s where username= %s"    # 改
      
      ret = cursor.execute(sql, [name, pwd])
      # 5.涉及操作数据库的  一定要提交
      conn.commit()
      # 6.关闭
      cursor.close()
      conn.close()
      

      mv = cursor.fetchall()  # 查询全部
      mv = cursor.fetchone()    # 查询一行
      mv = cursor.fetchmany(2)    # 查询多行
      
      • 返回的数据类型

        • 获取光标conn.cursor() 默认返回的是元组数据类型

        • 如果需要获取以字典的形式

          • cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
            
        • 常用的方法

          • fetchall() 获取全部信息
          • fetchall() 每一次只获取一行信息,最后没有信息时返回None
          • fetchmany(size) 获取size行信息
      • 获取刚插入数据的id,运用在多表关联

        • last_id = cursor.lastowid
      • 回滚实物,运用于语法错误中

        • # 导入pymysql模块
          import pymysql
          # 连接database
          conn = pymysql.connect(host=“你的数据库地址”, user=“用户名”,password=“密码”,database=“数据库名”,charset=“utf8”)
          # 得到一个可以执行SQL语句的光标对象
          cursor = conn.cursor()
          sql = "INSERT INTO USER1(name, age) VALUES (%s, %s);"
          username = "Alex"
          age = 18
          try:
              # 执行SQL语句
              cursor.execute(sql, [username, age])
              # 提交事务
              conn.commit()
              # 提交之后,获取刚插入的数据的ID
              last_id = cursor.lastrowid
          except Exception as e:
          1,# 有异常,回滚事务
              conn.rollback()
          cursor.close()
          conn.close()
          
    • 进阶(了解)

      • # 可以获取指定数量的数据
        cursor.fetchmany(3)
        # 光标按最开始的位置向下移动1
        cursor.scroll(1, mode="absolute")
        # 光标按照相对位置(当前位置)移动1
        cursor.scroll(1, mode="relative")
        
posted @ 2018-10-09 15:19  云丛  阅读(127)  评论(0编辑  收藏  举报