記錄---python的pymysql庫及本地mysql使用
阿新 • • 發佈:2022-03-07
首先,下載pymysql庫
pip install pymysql
py檔案引用:
import pymysql
class DB:
def __init__(self):
"""連線資料庫,建立遊標"""
self.con = pymysql.connect(host='localhost', port=3306, user='root',
password="mysql", database='test', charset='utf8',
cursorclass=pymysql.cursors.DictCursor
)
self.cur = self.con.cursor()
def query_sql(self, sql):
"""執行查詢的sql"""
self.cur.execute(sql)
return self.cur.fetchall()
def excute_sql(self, sql):
"""執行增刪改的sql"""
self.cur.execute(sql)
self.con.commit()
def close(self):
"""關閉遊標、斷開連線"""
self.cur.close()
self.con.close()
此外,說一下這次資料庫相關內容碰到的坑
在安裝好mysql客戶端後(mysql5.7,網上有下載教程)
首先建庫:
create database testdb;
然後建表
create table books(
id int unsigned primary key auto_increment not null,
name varchar(20) default '',
position varchar(40) default '',
status enum('在庫','出借') default '在庫',
borrorwer varchar(20) default ''
);
這時候報了一個錯誤:Invalid default value for 'status'(“狀態”的預設值無效)
多方查驗後發現,這是由於建庫的時候沒有定義編碼格式,資料庫無法識別中文的預設內容導致的,更改資料庫的編碼屬性即可解決這個問題;
我這裡直接進行了刪庫操作,重新建了一個新的庫,命令語句:
CREATE DATABASE IF NOT EXISTS test_db_ DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
至此,錯誤解決,再次執行建表語句沒有再報錯。