其實python鏈接MySQL的方法很多,比較常用的是MySQLdb這個模塊,由於自己准備往數據庫里面插入一條日期數據,在格式化的日期數據的時候一直報錯,所以這里簡單寫了一個往MySQL數據庫的插入數據的demo。
# -*- coding: utf-8 -*- # @Time : 2018/1/22 21:39 # @Author : Hunk # @Email : qiang.liu@ikooo.cn # @File : ex125.py # @Software: PyCharm import MySQLdb from datetime import datetime # 打開數據庫連接 db = MySQLdb.connect("127.0.0.1", "root", "root", "cars", charset='utf8') # 使用cursor()方法獲取操作游標 cursor = db.cursor() # 使用execute方法執行SQL語句 date = datetime.now().strftime("%Y-%m-%d") sql = """insert into series values(%d,%s,str_to_date(%s,'%%Y-%%m-%%d'))""" param = (1, "哈弗H6", date) cursor.execute(sql, param) # 提交到數據庫執行 db.commit() # 關閉數據庫連接 cursor.close() db.close()
其實最初操作的時候一個簡單的數據插入的動作還遇到了幾個常見的問題,所以在這里總結下
問題1:插入數據的時候采用%d 來格式化sql語句;
報錯:TypeError: %d format: a number is required, not str"
解決方案:
The format string is not really a normal Python format string. Youmust always use %s for all fields. 也就是MySQLdb的字符串格式化不是標准的python的字符串格式化,
問題2:鏈接數據庫的時候沒有指定數據庫的字符集插入中文數據后發現顯示亂碼;
解決辦法:
鏈接的時候直接指定字符集或者鏈接完成后設置自己的字符集;
db = MySQLdb.connect("127.0.0.1", "root", "root", "cars", charset='utf8')

