以前經(jīng)常用mysql-connector來訪問MySQL數(shù)據(jù)庫(kù)送火,最近看資料看到mysql-connector已慢慢不是主流的訪問庫(kù)了,官方推薦的是MySQLdb笛丙。
研究切換到MySQLdb
首先需要去:Unofficial Windows Binaries for Python Extension Packages下載最新版本的安裝包
網(wǎng)頁(yè)中搜索mysqlclient
下載相應(yīng)版本的文件
我下載的是for python 36的64位版本
控制臺(tái)執(zhí)行:
pip install mysqlclient-1.3.12-cp36-cp36m-win_amd64.whl
裝好后即可使用
注意一
MySQLdb與以前的mysql.connector的語法完全一致漾脂,唯一差別在于import 的內(nèi)容不一樣
以前的是:
import mysql.connector as con
現(xiàn)在的是:
import MySQLdb as con
注意二
因?yàn)殚_發(fā)商是瑞典公司,MySQLdb默認(rèn)的編碼是latin1胚鸯,如果要執(zhí)行的SQL語句中含有中文骨稿,悲劇了,會(huì)有錯(cuò)誤
UnicodeEncodeError: 'latin-1' codec can't encode character '\u4e00' in position 16: ordinal not in range(256)
解決辦法:
以前打開數(shù)據(jù)庫(kù)連接的時(shí)候是這樣的:
cnx = con.connect(user='root', password='supermap', database='lte')
加一個(gè)charset='utf8'即可
cnx = con.connect(user='root', password='supermap', database='lte', charset='utf8')