在编写初期,遇见一个问题,发现怎么连接不上mysql,一直报错1045;
最后发现,只要下面的,连接写正确,不会出现这个问题, 只要你保证你的user、pwd是正确的,
import pymysql
db_config = { 'user': 'root', 'password': 'qwe123', 'db': 'test', 'charset':'utf8' } # 连接mysql数据库 con = pymysql.connect(**db_config) # 创建游标 , 利用游标来执行sql语句 cur = con.cursor()
基本连接是没有问题的。
那我在重复下基本操作命令:
1、建立连接:pymysql.connect(**dbconfig) 连接是不能操作数据库的,需要用连接生成游标来操作 2、创建游标: connection.cursor() 3、执行SQL语句:cursor.execute(sql) 4、获取结果:cur.fetchall() 5、事务的回滚: rollback() 6、事务的提交: commit()
这时,咱们在xshell_mysql 新建一些数据
新建表数据:
CREATE TABLE data_test(
id INT unique,
name VARCHAR(50),
age INT,
sex enum('男','女') );
表内插入数据:
insert into data_test(id, name, age, sex) VALUES(1, '李牧', 18, '男'),(2, '栗子', 20, '女'),(3, '测试', 26, '男'),(4, '尕娃', 30, '女');
那么在xshell中查询结果如下:
那么我们在pycharm 怎么连接并查询数据呢?
1 import pymysql 2 3 def tes_mysql(): 4 db_config = { 5 'user': 'root', 6 'password': 'qwe123', 7 'db': 'test', 8 'charset':'utf8' 9 } 10 # 连接mysql数据库 11 con = pymysql.connect(**db_config) 12 # 创建游标 , 利用游标来执行sql语句 13 cur = con.cursor() 14 15 try: 16 # 执行sql语句,不会返回结果,返回其影响的行数 17 executes = cur.execute("select * from data_test") 18 # 获取结果 19 values = cur.fetchall() 20 for value in values: 21 print(value) 22 23 # 提交到数据库,真正把数据插入或者更新到数据 24 con.commit() 25 except Exception as e: 26 print(e) 27 # 发生了异常,回滚 28 con.rollback() 29 30 finally: 31 # 在最后使用完关闭游标和连接 32 # 关闭游标 33 cur.close() 34 # 关闭连接 35 con.close()
再进行个参数化把,
定义 test_base.py
1 import pymysql 2 3 def tes_mysql(sql): 4 db_config = { 5 'user': 'root', 6 'password': 'qwe123', 7 'db': 'test', 8 'charset':'utf8' 9 } 10 # 连接mysql数据库 11 con = pymysql.connect(**db_config) 12 # 创建游标 , 利用游标来执行sql语句 13 cur = con.cursor() 14 15 try: 16 # 执行sql语句,不会返回结果,返回其影响的行数 17 executes = cur.execute(sql) 18 # 获取结果 19 values = cur.fetchall() 20 for value in values: 21 print(value) 22 23 # 提交到数据库,真正把数据插入或者更新到数据 24 con.commit() 25 except Exception as e: 26 print(e) 27 # 发生了异常,回滚 28 con.rollback() 29 30 finally: 31 # 在最后使用完关闭游标和连接 32 # 关闭游标 33 cur.close() 34 # 关闭连接 35 con.close()
run_select.py
1 from day.test_base import tes_mysql 2 3 sql = "select * from data_test" 4 # 实例化 5 a = tes_mysql(sql)
运行结果:
简单记录一下。
作者:含笑半步颠√
博客链接:https://www.cnblogs.com/lixy-88428977
声明:本文为博主学习感悟总结,水平有限,如果不当,欢迎指正。如果您认为还不错,欢迎转载。转载与引用请注明作者及出处。