经过一番折腾终于解决了python3操作数据库,也走了不少弯路,我将自己的心得记录下来,也许能帮到正在查找问题的你。
注意:python版本问题,python2.x与python3.x操作数据库的区别:python2使用模块为MySqldb,而在python3中不支持MySqldb了,但是也可以使用一个whl的二进制文件实现https://www.jianshu.com/p/c1dbdca5c921,但是不建议这么做,显得麻烦,还浪费时间。python3版本用pymysql模块就可以了。
详细的pymysql模块操作方法如下:
"""
pymysql.connect()参数说明:(连接数据库时需要添加的参数)
host(str): MySQL服务器地址
port(int): MySQL服务器端口号
user(str): 用户名
passwd(str): 密码
db(str): 数据库名称
charset(str): 连接编码
connect()对象支持的方法:
cursor() 使用该连接创建并返回游标
commit() 提交当前事务
rollback() 回滚当前事务
close() 关闭连接
cursor对象支持的方法:
execute(op) 执行一个数据库的查询命令
fetchone() 取得结果集的下一行
fetchmany(size) 获取结果集的下几行
fetchall() 获取结果集中的所有行
rowcount() 返回数据条数或影响行数
close() 关闭游标对象
"""
import pymysql
# 连接数据库连接
conn = pymysql.connect(host = "192.168.44.158",
user = "root",
passwd = "MyNewPass789"
db = "hanwo",
port = 3306,
charset = "utf8")
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = conn.cursor()
#输入查询语句,注意:这里输入后显示的是高亮状态其实并没有错误
sql = 'select * from hanwo_articlecategories'
# 使用 execute() 方法执行 SQL 查询
cursor.execute(sql)
for i in cursor.fetchall():
print(i)
print('共查询到:', cursor.rowcount, '条数据。')
# 使用 fetchone() 方法获取单条数据.
data = cursor.fetchone()
print(data)
# 关闭游标
cursor.close()
# 关闭数据库连接
conn.close()