其实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')