09_05、python操作MySQL
1、下载模块
pip3 install pymysql """ python默认下载模块的地址是国外的网站 速度有时候会非常的慢 如果想要提升速度我们可以切换下载源 """ (1)阿里云 http://mirrors.aliyun.com/pypi/simple/ (2)豆瓣http://pypi.douban.com/simple/ (3)清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/ (4)中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/ (5)华中科技大学http://pypi.hustunique.com/ # 1.命令行切换源 pip3 install pymysql -i 源地址 # 2.pycharm永久切换 file setting interpreter 双击 manage 仓库
2、基本使用
# 导入模块 import pymysql # 1、创建连接对象connect # 参数:主机地址、端口、用户名、密码、数据库名、编码 conn = pymysql.connect( host='127.0.0.1', port=3306, user='root', password='123', database='db1', charset='utf8' ) # 2、生成光标对象cursor cursor = conn.cursor() # cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) # 括号内的参数表示以字典形式输出 # 3、定义SQL语句 # sql = 'show tables' # sql命令 sql = 'select * from teacher' # 4、执行sql语句 affect_rows = cursor.execute(sql) # print(affect_rows) 执行SQL语句所影响的行数,5 # 5、获取结果 res = cursor.fetchall() print(res)
3、SQL注入
SQL注入是利用特殊符号的组合绕过MySQL相应命令的机制
# 利用python操作MySQL会产生sql注入问题 # 比如在用户交互时: username:root --djnacfds password:123456 # --在sql语句中是注释 # 所以此处原本是(root,123456)的名字和密码 # 输入(root --djnacfds,123456)依旧能够登录
# 其他现象
xxx' or 1=1 -- fffdf
sql = "select * from userinfo where name=%s and password=%s"
如何解决
# 执行sql语句 cursor.execute(sql,(username,password)) # 交由execute自动拼接 自动筛选
4、增删改查
略
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通