zoukankan      html  css  js  c++  java
  • 使用python简单连接并操作数据库

    python中连接并操作数据库

    • 图示操作流程

    一、使用的完整流程

    # 1. 导入模块
    from pymysql import connect
    
    # 2. 创建和数据库服务器的连接,自行设置 服务器地址,端口,用户名,密码,数据库名, 通信使用字符和数据库字符集一致
    conn = connect(host='', port=, user='', password='',database='', charset='')
    
    # 3. 获取游标
    cursor = conn.cursor()
    
    # 4. 执行SQL语句 
    sql = "sql语句的内容,按照标准sql语句格式"
    
    # 5. execute执行后返回值就是SQL语句在执行过程中影响的行数,可以打印出来显示语句是否执行成功
    row_count = cursor.execute(sql)
    print("SQL语句执行影响的行数%d" % row_count)
    
    # 6. 提交数据,在pymysql中时默认不提交的,必须手动提交,否则无法写入数据库
    conn.commit()
    # # 回滚数据到什么都不做的状态 即撤销刚刚的修改
    conn.rollback()
    
    # 7. 关闭游标
    cursor.close()
    
    # 8. 关闭连接
    conn.close()
    

    二、关于SQL注入的问题

    1. 什么是SQL注入 产生原因
    • 后台将用户提交的带有恶意的数据和SQL进行字符串方式的拼接,从而影响了SQL语句的语义,最终产生数据泄露的现象。
    1. 防止: sql语句的参数化
    • 将SQL语句的所有数据参数存在一个列表中传递给execute函数的第二个参数

      row_count = cursor(游标对象).execute(sql语句, params)
      
      # sql语句中所有参数,都通过储存在params内,然后向sql语句传参
      # 那么params=[数值1,数值2....],此时sql语句中有多个%s即可 
  • 相关阅读:
    Kali视频学习21-25
    20159315《网络攻防实践》第六周学习总结
    Kali视频学习16-20
    20159315《网络攻防实践》第五周学习总结
    一个PE文件的逆向分析
    一个好玩的CTF题
    对于安卓锁屏中知识点小结
    安卓系统安全措施
    安卓防逆向、防动态分析、渗透测试及加固
    安卓组件漏洞防护注意事项
  • 原文地址:https://www.cnblogs.com/yanguhung/p/10145770.html
Copyright © 2011-2022 走看看