• MySQL 数据库连接


    一、什么是 PyMySQL?

        PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。

        PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQL 客户端库。

    二、PyMySQL 安装

        在使用 PyMySQL 之前,我们需要确保 PyMySQL 已安装。

        PyMySQL 下载地址:https://github.com/PyMySQL/PyMySQL。

        如果还未安装,我们可以使用以下命令安装最新版的 PyMySQL:

     cmd命令:pip3 install PyMySQL

     

    三、数据库连接

    # 代码链接
    
    import pymysql
    
    #链接
    conn=pymysql.connect(
    
      host='localhost',
    
      user='root',
    
      password='123',
    
      database='egon',
    
      charset='utf8')
    
    #游标
    cursor=conn.cursor() #执行完毕返回的结果集默认以元组显示
    
    #cursor=conn.cursor(cursor=pymysql.cursors.DictCursor)  # 以字典的方式显示数据

    四、操作数据库

    # pymysql操作数据库
    
    #执行sql语句
    
    user = input(">>>:").strip()
    
    pwd = input(">>>:").strip()
    
    sql='select * from userinfo where name="%s" and password="%s"' %(user,pwd) #注意%s需要加引号
    
    rows=cursor.execute(sql) #执行sql语句,返回sql查询成功的记录数目
    
    '''
    获取真实数据,类似管道取值,
    cursor.fetchone(),获取一条
    cursor.fetchall(),所有
    cursor.fetchmany(),多条
    '''
    
    cursor.scroll(1,'relative')  # 相对移动,从当前位置移动
    cursor.scroll(3,'absolute')  # 绝对移动,从数据管道开始位置移动
    
    cursor.close()
    conn.close()

    五、关于sql注入问题

          所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令;

        如果通过网页获取用户输入的数据并将其插入一个MySQL数据库,那么就有可能发生SQL注入安全的问题。

    import pymysql
    
    conn = pymysql.connect(
        host = '127.0.0.1',
        port = 3306,
        user = 'root',
        password = '123',
        database = 'test',
        charset = 'utf8',
        autocommit = True
    )
    cursor = conn.cursor(pymysql.cursors.DictCursor)
    username = input('username>>>:')
    password = input('password>>>:')
    sql = "insert into userinfo(name,password) values(%s,%s)"

    ''' sql = "update userinfo set name='jasonhs' where id =1"sql = "select * from userinfo where name=%s and password=%s"
    '''
    res = cursor.execute(sql,(username,password))
    # res = cursor.execute(sql) # conn.commit() # 确认数据无误之后 commit之后才会将数据真正修改到数据库 print(sql) if res: # print(cursor.fetchall()) pass else: print('用户名或密码错误!')

        

  • 相关阅读:
    批量修改文件编码
    RAII机制
    C++20新特性一:模块Module
    vue 使用v-for遍历对象属性
    Chrome 91 本地跨域无法携带cookies问题解决
    Vue 函数式组件的使用技巧
    URL编码解决中文字符乱码(encodeURIComponent和decodeURIComponent)
    vue的provide/inject实现响应式数据监听
    vue3之watch监听
    Vue3: 知识总结: hooks
  • 原文地址:https://www.cnblogs.com/yuanlianghong/p/10878242.html
Copyright © 2020-2023  润新知