advPython-4

pymysql 模块

python 复制代码
import pymysql

# 连接数据库
conn = pymysql.connect(
    host='127.0.0.1',
    port=3306,
    user='root',
    password='123',
    database='db1',
    charset='utf8',
    cursorclass=pymysql.cursors.DictCursor  # cursor=pymysql.cursors.DictCurosr:将查询结果以字典的形式返回
)

cursor = conn.cursor()  # 产生一个游标对象

res = cursor.execute('select * from emp;')  # 返回值为当前sql语句影响的行数,一般不用
# print(res)

# 获取命令执行的查询结果
# print(cursor.fetchone())  # 拿到一条

# 读取数据类似于文件的光标的移动
print(cursor.fetchone())
print(cursor.fetchone())
# cursor.scroll(1, 'relative')  # 相对移动
cursor.scroll(5, 'absolute')  # 绝对移动
print(cursor.fetchone())

pymysql 补充

python 复制代码
import pymysql

conn = pymysql.connect(
    host='127.0.0.1',
    port=3306,
    user='root',
    password='123',
    database='db1',
    charset='utf8',
    cursorclass=pymysql.cursors.DictCursor,
    autocommit=False  # 控制是否开启--自动提交操作--模式
)

cursor = conn.cursor()

# # 增
# sql = 'insert into dep(id,name) values(%s,%s)'
# rows = cursor.execute(sql, ('204', '管理部'))
# # rows = cursor.executemany(sql,[('205','监督部'),('206','法律部'),(),(),()...])  # 一次添加多个数据
# print(rows)
# conn.commit()  # 提交操作

# # 修改
# sql = 'update emp set name="jasonNB" where id=1'
# rows = cursor.execute(sql)
# print(rows)
# conn.commit()  # 提交操作

# 删除
# sql = 'delete from dep where id=204'
# rows = cursor.execute(sql)
# print(rows)
# conn.commit()  # 提交操作

# # 查询
# sql = 'select * from emp where id>3'
# rows = cursor.execute(sql)
# print(rows)
# for i in cursor.fetchall():
#     print(i)

"""
补充知识:
对数据库的增删改是非常严肃的问题,使用需要人为再确认才能真正生效!-> conn.commit() # 提交操作 或者 开启自动提交操作模式
而对应查操作,直接执行!
"""

sql 注入问题

python 复制代码
import pymysql

# 连接数据库
conn = pymysql.connect(
    host='127.0.0.1',
    port=3306,
    user='root',
    password='123',
    database='db1',
    charset='utf8',
    cursorclass=pymysql.cursors.DictCursor
)

cursor = conn.cursor()
while 1:
    usename = input('名字>>>')
    id = input('ID>>>')
    sql = "select * from emp where name=%s and id=%s"
    # 不要自己做拼接,用%占位即可,然后让execute帮忙检查是否合法同时它会自动拼接
    rows = cursor.execute(sql, (usename, id))
    if rows:
        print('登录成功!')
    else:
        print('登录失败')
相关推荐
Jay-r31 分钟前
手势粒子特效系统 Gesture Particle FX(附源码下载)
python·ai·编程·pygame·百度云·手势控制
额恩6637 分钟前
ResearchPilot 第三阶段总结报告
python·算法
红叶舞1 小时前
基于线段树的数据结构
数据结构·python·算法
创世宇图1 小时前
Video2Txt:160 行代码实现本地视频转文字
python·faster-whisper·video2txt·large-v3-turbo
落苜蓿蓝2 小时前
Java 循环中对象复用导致属性覆盖?从 JVM 内存模型讲解原因
java·jvm·python
小白说大模型2 小时前
Python 工程化设计模式:AI 项目中的异步流水线与策略模式实战
人工智能·python·设计模式
阿童木写作2 小时前
TikTok Shop视频翻译工具实战测评
人工智能·python·音视频
circuitsosk3 小时前
大模型驱动的AI产品后端架构设计与实践
人工智能·python
JackSparrow4143 小时前
前端安全之JS混淆+请求加密+请求签名以提升爬虫难度
前端·javascript·后端·爬虫·python·安全
软糖姐姐3 小时前
python eureka服务发现_python与consul 实现gRPC服务注册-发现
python·consul·grpc·服务注册·发现