• MySQL >>> Python代码


    Python 代码操作 MySQL

    # 先安装 pymysql 模块
    import
    pymysql
    conn=pymysql.connect( # 链接 host='localhost',
     port=3306, user
    ='root', password='123', database='egon', charset='utf8') # 此处不是utf-8,不加横杠
    # 方式一:
    cursor=conn.cursor() # 生成游标,且执行完毕返回的结果集默认以元组显示
    # 方式二:
    cursor=conn.cursor(pymysql.cursors.DictCursor) # 以字典的方式 显示数据
                                      # 键是表的字段  值是表的字段对应的信息
    # 3.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') # 控制光标 相对移动 表示相对于目前所在的位置 向后移动1条数据 cursor.scroll(3,'absolute') # 控制光标 绝对移动 表示相对于数据的起始位置 向后移动3条数据 cursor.close() conn.close()

     SQL 注入问题

       不要手动去拼接查询的 sql 语句 !!!

        sql 注入:就是利用注释等具有特殊意义的符号 来完成一些骚操作
        后续写 sql 语句  不要手动拼接关键性的数据
        而是让 excute 帮你去做拼接

    username = input(">>>:").strip() password = input(">>>:").strip() sql = "select * from user where username='%s' and password='%s'"%(username,password) # 用户名正确 username >>>: jason' -- jjsakfjjdkjjkjs # 用户名密码都不对的情况 username >>>: xxx' or 1=1 --asdjkdklqwjdjkjasdljad password >>>: ''#### 增删改 # sql = "insert into user(username,password) values(%s,%s)" rows = cursor.excute(sql,('jason','123')) # 修改 sql = "update user set username='jasonDSB' where id=1" rows = cursor.excute(sql) """ 增和改 单单执行 excute 并不会真正影响到数据,需要再执行 conn.commit()才可以完成真正的增改
    所以可以在连接时候配置自动提交参数 >>> autocommit = True
    """

    # username = input('username>>>:')
    # password = input('password>>>:')
    # sql = "select * from user where name = %s and password = %s"
    # print(sql)
    # res = cursor.execute(sql,(username,password))  # 能够帮你自动过滤特殊符号 避免sql注入的问题
    #       # execute 能够自动按位置识别 sql 语句中的 %s 帮你做替换 只能识别 %s
    # if res:
    #     print(cursor.fetchall())
    # else:
    #     print('用户名或密码错误')
    # 一次插入多行记录 res = cursor.executemany(sql,[(),(),()])
  • 相关阅读:
    uni-app调用原生的文件系统管理器(可选取附件上传)
    uni-app图片压缩转base64位 利用递归来实现多张图片压缩
    解释器模式
    外观模型
    装饰模式
    组合模式
    原型模式
    简单工厂模式
    抽象工厂模式
    工厂方法模式
  • 原文地址:https://www.cnblogs.com/pupy/p/11402132.html
Copyright © 2020-2023  润新知