1. 程式人生 > 其它 >記錄---python的pymysql庫及本地mysql使用

記錄---python的pymysql庫及本地mysql使用

首先,下載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;

至此,錯誤解決,再次執行建表語句沒有再報錯。