zoukankan      html  css  js  c++  java
  • 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('用户名或密码错误!')

        

  • 相关阅读:
    Python 处理时间的模块
    C# 委托在线程与UI界面之间的应用
    C# 自己动手实现Spy++(二)
    C# 自己动手实现Spy++(一)
    VS2008自定义快捷键设置
    C#深入解析委托——C#中为什么要引入委托
    C# 线程 在 sleep,suspend 之后 Abort 的方法
    C#多线程学习笔记之(abort与join配合使用)
    使用命名管道的OVERLAPPED方式实现非阻塞模式编程 .
    C++和C#进程之间通过命名管道通信(上)
  • 原文地址:https://www.cnblogs.com/yuanlianghong/p/10878242.html
Copyright © 2011-2022 走看看