zoukankan      html  css  js  c++  java
  • MySQL-pymysql模块

    Navicat软件

    安装

    下载地址:
    https://www.cr173.com/soft/126934.html
        
    
    navicat能够充当多个数据库的客户端
    
    
    navicat图形化界面有时候反应速度较慢 你可以选择刷新或者关闭当前窗口再次打开即可
    
    当你有一些需求该软件无法满足的时候 你就自己动手写sql

    提示

    """
    1 MySQL是不区分大小写的
        验证码忽略大小写
            内部统一转大写或者小写比较即可
                upper
                lower
    
    2 MySQL建议所有的关键字写大写
    
    3 MySQL中的注释 有两种
        --
        #
    
    4 在navicat中如何快速的注释和解注释
        ctrl + ?  加注释
        ctrl + ?  基于上述操作再来一次就是解开注释
        如果你的navicat版本不一致还有可能是
        ctrl + shift + ?解开注释
    """

    pymysql模块

    """
    支持python代码操作数据库MySQL
    """
    pip3 install pymysql

    sql注入

    """
    利用一些语法的特性 书写一些特点的语句实现固定的语法
    MySQL利用的是MySQL的注释语法
    select * from user where name='jason' -- jhsadklsajdkla' and password=''
    
    select * from user where name='xxx' or 1=1 -- sakjdkljakldjasl' and password=''
    """
    日常生活中很多软件在注册的时候都不能含有特殊符号
    因为怕你构造出特定的语句入侵数据库 不安全
    
    # 敏感的数据不要自己做拼接 交给execute帮你拼接即可
    # 结合数据库完成一个用户的登录功能?
    import pymysql
    
    
    conn = pymysql.connect(
        host = '127.0.0.1',
        port = 3306,
        user = 'root',
        password = '123456',
        database = 'day48',
        charset = 'utf8'  # 编码千万不要加-
    )  # 链接数据库
    cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
    
    username = input('>>>:')
    password = input('>>>:')
    sql = "select * from user where name=%s and password=%s"
    # 不要手动拼接数据 先用%s占位 之后将需要拼接的数据直接交给execute方法即可
    print(sql)
    rows = cursor.execute(sql,(username,password))  # 自动识别sql里面的%s用后面元组里面的数据替换
    if rows:
        print('登录成功')
        print(cursor.fetchall())
    else:
        print('用户名密码错误')
  • 相关阅读:
    bzoj3306: 树(dfs序+倍增+线段树)
    bzoj1969: [Ahoi2005]LANE 航线规划(树链剖分)
    Codeforces 578B. "Or" Game(思维题)
    bzoj3251: 树上三角形(思维题)
    bzoj2006: [NOI2010]超级钢琴(堆+RMQ)
    bzoj4165: 矩阵(堆+hash)
    bzoj3007: 拯救小云公主(二分+并查集)
    Codeforces 582C. Superior Periodic Subarrays(数学+计数)
    Codeforces 585E. Present for Vitalik the Philatelist(容斥)
    Codeforces 585D. Lizard Era: Beginning(meet in the middle)
  • 原文地址:https://www.cnblogs.com/zhenghuiwen/p/12844946.html
Copyright © 2011-2022 走看看