zoukankan      html  css  js  c++  java
  • 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,[(),(),()])
  • 相关阅读:
    C语言复习---二维数组和二级指针的关系:没关系,别瞎想(重点)
    数据结构(二)栈与队列---回溯法之八皇后问题
    数据结构(二)栈与队列---递归之汉罗塔
    数据结构(二)栈与队列---栈的应用(递归和分治思想)
    数据结构(二)栈与队列---队列
    chmod 权限777 是什么意思(Unix和Linux的各种操作系统下)
    C#:基于WMI查询USB设备
    Eclipse中web项目部署至Tomcat步骤
    CSS设置DIV背景色渐变显示
    通过[蜘蛛协议]Robots.txt禁止搜索引擎收录的方法
  • 原文地址:https://www.cnblogs.com/pupy/p/11402132.html
Copyright © 2011-2022 走看看