python資料插入連線MySQL資料庫

Quest_sec發表於2020-04-23

目標 網站:豆瓣TOP250榜單
選擇的原因 相似特徵: 詳情頁、翻頁√

(一) 安裝驅動器mysql-connector

mysql-connector 是 MySQL 官方提供的驅動器,我們用它來連線使用MySQL,輸入 pip 命令來安裝 mysql-connector:
在這裡插入圖片描述
ps: pip和conda list 均顯示安裝好了,測試安裝成功:
在這裡插入圖片描述

(二)Python完整程式碼例項

資料庫基本操作教程Python MySQL - 點選 -

mysql.connector_程式碼示例 - CSDN部落格 -

import mysql.connector

mydb = mysql.connector.connect(
    host="localhost",   # 資料庫主機地址
    user="root",        # 資料庫使用者名稱
    passwd="123456",    # 資料庫密碼
    database="tptest"   # 直連資料庫,如果資料庫不存在,會輸出錯誤資訊
)
print(mydb)

mycursor = mydb.cursor()    #獲取遊標,接下來用cursor提供的方法

''' 建表 : 只執行一次
mycursor.execute("create table template"
                 "(Id INT(10) NOT NULL AUTO_INCREMENT,"  # 記得設定主鍵
                 "PRIMARY KEY (Id),"					 # 主鍵第二行
                 "Team VARCHAR(100) NOT NULL,"
                 "Number INT NOT NULL,"
                 "Name VARCHAR(100) NOT NULL,"
                 "Positions VARCHAR(100) NOT NULL)"
                 )
'''

# 插入資料一:具體數值直接插入
       mycursor.execute("insert into template(Team,Number,Name,Positions)values('湖人','25','詹姆斯','前鋒')")
# 插入資料二:賦值給變數,將變數的值插入mysql
	data1 #假設已賦值,且type = list
	data2 #假設已賦值,且type = list
#需轉換為list型別才能插入mysql
    sql_name = "".join(data1)
    sql_age = "".join(data2)
    sql = "INSERT INTO databaseName(DB_name,DB_age) VALUES (%s, %s)"
    val = (sql_name,sql_age)
    mycursor.execute(sql, val)
'''

mydb.commit()     # 呼叫此方法進行提交
mycursor.close()  # 關閉遊標
mydb.close()      # 關閉資料庫連線

(三)常見報錯型別與解決辦法

報錯:python將資料插入mysql資料庫:Unknown column ‘xxx’ in 'field list’

解決方法:

1、如果是作插入操作“insert into…”的話,很可能是插入表的欄位沒匹配對,比如有一些要求非空的欄位,要檢查是否都賦了值。

2、檢視插入時,賦值是否加了單引號:values(“’”+變數+“’”,’“’”+變數+“’”)。

3、總之,就是要仔細檢查sql語句,最好先去資料庫中,執行一下看看。

報錯:Mysql出現ERROR 1265 (01000): Data truncated for column ‘name’ at row 1

解決方法:賦值超出了name設定的寬度,因此去增大name的寬度。

報錯:Python ‘list’ cannot be converted to a MySQL type

解決方法:list型別無法插入mysql,需要先轉換資料型別:

data_str = "".join(data_list)

相關文章