在編寫初期,遇見一個問題,發現怎么連接不上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
聲明:本文為博主學習感悟總結,水平有限,如果不當,歡迎指正。如果您認為還不錯,歡迎轉載。轉載與引用請注明作者及出處。