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、增删改查

 略

posted @   三三得九86  阅读(24)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示