这个探索案例,让我彻底把cursor、commit的问题搞清楚了

该代码示例展示了如何使用Python的pymysql库连接到MySQL数据库,进行数据库选择、创建表、插入数据和查询数据的操作。它首先定义了一个Personss类来初始化数据库连接,然后执行SQL语句,包括创建test_table表,插入一条记录,以及查询所有记录。虽然游标被关闭,但仍然能获取查询结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import pymysql
import time

class Personss:
    def __init__(self):
        self.conn = pymysql.Connection(
            host="localhost", # 主机名 IP地址
            user="root", # 账户
            password="xxxxxx", # 密码
            port=3306, # 端口
    )
p2 = Personss()
conn = p2.conn

# 选择
conn.select_db("testdb")

# 获取游标
cursor = conn.cursor()


update_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
print(update_time)

# 创建sql变量
drop_sql= "drop table if exists test_table"
create_sql = "Create Table test_table(id bigint(20) primary key auto_increment,name varchar(20),age int " \
             ",sex varchar(10),update_time datetime)"
insert_sql = f"insert into test_table(name,age,sex,update_time)values('高启强',48,'男','{update_time}')"
query_sql = "select * from test_table"

# 执行SQL(关闭游标,以下语句将不能执行)
# cursor.execute(drop_sql)
# cursor.execute(create_sql) # 不需要commit
cursor.execute(insert_sql) # 需要commit
cursor.execute(query_sql) # 不需要commit,也可以查询出结果;并且包含查询尚未commit的新增记录(存放与电脑内存中)

# 关闭游标
cursor.close()

# 通过游标获取查询结果(注意这里:cursor.fetchall()不是方法,故关闭cursor,也照样可以获得查询结果)
result = cursor.fetchall()

# 打印结果
print(result)

# 提交事务
# conn.commit()






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值