老雷python教程之pymysql学习及DB类的实现
CREATE TABLE `sky_guest` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(50) DEFAULT '' COMMENT '主题',
`status` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '状态',
`telephone` varchar(15) NOT NULL DEFAULT '',
`createtime` datetime NOT NULL DEFAULT '2019-01-17 08:08:01' COMMENT '留言时间',
`content` text COMMENT '留言内容',
`reply_content` text COMMENT '回复内容',
`reply_time` datetime NOT NULL DEFAULT '2019-01-17 08:08:01' COMMENT '回复时间',
`nickname` varchar(16) NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=82 DEFAULT CHARSET=utf8 COMMENT='留言板';
一、安装使用pip install pymysql
conn=pymysql.connect(user='root', password='123', database='laoleiphp', charset='utf8')
cursor=conn.cursor()
sql="select * from sky_guest limit 10 "
cursor.execute(sql)
lists=cursor.fetchall()
sql="insert into sky_guest set title='测试insert' "
cursor.execute(sql)
conn.commit()
cursor.close()
conn.close()
二、Connection Object
1、连接
conn=pymysql.connect(user='root', password='123', database='laoleiphp', charset='utf8mb4')
2、事务
conn.begin()
conn.commit()
conn.rollback()
3、关闭连接
conn.close()
三、cursor Object
1、创建游标
cursor=conn.cursor(ops)
2、执行sql
cursor.execute(sql,(id))
cursor.excute("select id from sky_guest limit %s",(4))
3、获取结果
cursor.fetchall()
cursor.fetchone()
4、关闭游标
cursor.close()
5、获取自增id 新增数据
cursor.lastrowid
四、游标
1、默认类型 cursor 元组的方式保存
2、DictCursor 以字典的形式保存
cursor = conn.cursor(pymysql.cursors.DictCursor)
3、SSCursor和SSDictCursor
流式游标会陆陆续续一条一条得返回查询数据,所以这类游标适用于内存低、网络带宽小、数据量大的应用场景中
cursor = conn.cursor(pymysql.cursors.SSCursor)
cursor = conn.cursor(pymysql.cursors.SSDictCursor)
五、DB类实现
setDb 设置数据库连接
query 执行sql语句
getAll 获取所有行
getRow 获取一行
getOne 获取一个字段
getCols 获取一列
insert 插入数据 返回自增id
update 更新数据
delete 删除数据
close 关闭连接