打开数据库

在这里插入图片描述

数据准备

create database class;
use class;
create table student(id int(4),name varchar(11));
insert into student value(1,'aaa');
insert into student value(2,'aafa');

基础代码的实现

# 导入mysql的包
import pymysql

# 创建连接对象
conn = pymysql.connect(host="localhost", port=3306, user="root", password="你们自己的密码", database="class", charset="utf8")

# 获取游标对象
cs = conn.cursor()

# pymysql完成数据的查询操作
sql = "select * from student;"

# 这里获取的是sql影响的行数
# content = cs.execute(sql)
# print(content)

cs.execute(sql)
content = cs.fetchone()
print(content)
content = cs.fetchall()
print(content)

# 关闭游标和关闭连接
cs.close()
conn.close()

进阶版增删改查

# 导入mysql的包
import pymysql

# 创建连接对象
conn = pymysql.connect(host="localhost", port=3306, user="root", password="你们自己的密码", database="class", charset="utf8")

# 获取游标对象
cs = conn.cursor()

# pymysql完成数据的查询操作,这里面增删改查都可以
sql = "update student set name = '我不知道' where id = 1;"

cs.execute(sql)

sql = "select * from student;"

cs.execute(sql)

content = cs.fetchall()
for i in content:
    print(i)

# 因为代码的操作在mysql相当与一个事务,所以需要被提交
conn.commit()

# 关闭操作
cs.close()
conn.close()

sql注入的注意事项(安全方式与不安全方式)

# 导入mysql的包
import pymysql

# 创建连接对象
conn = pymysql.connect(host="localhost", port=3306, user="root", password="你们自己的密码", database="class", charset="utf8")

# 获取游标对象
cs = conn.cursor()

# 不安全的方式
# 根据id查询学生信息
# find_name = input("请输入您要查询的学生姓名:")
# sql = "select * from students where name='%s'" % find_name
# # 显示所有的数据
# cs.execute(sql)
# content = cs.fetchall()
# for i in content:
#     print(i)

# 安全的方式
# 根据id查询学生信息
find_name = input("请输入您要查询的学生姓名:")
sql = "select * from student where name=%s;"

# 显示所有的数据
cs.execute(sql, [find_name])
context = cs.fetchall()
for i in context:
    print(i)

# 关闭游标和连接
cs.close()
conn.close()
Logo

一站式 AI 云服务平台

更多推荐