假设要插入的表结构如图所示:
一、向表test2中插入数据的主要流程如下:
import MySQLdb
import datetime
'''连接数据库'''
db = MySQLdb.connect(host = 'localhost',#本地数据库
user = 'root', #用户名
passwd = 'XXXXX', #数据库密码
db = 'test', #数据库名
charset = 'utf8') #数据库编码
'''待插入的数据'''
Url = "http://www.baidu.com"
Time = datetime.datetime.now() #系统当前时刻
'''插入数据'''
'''关闭连接'''
db.close()
二、Python向mysql逐条插入数据一般有两种形式:
sql = "insert into test2(url, time) values('%s','%s')" % (Url,Time)
cursor = db.cursor()
try:
cursor.execute(sql)
db.commit() #提交到数据库执行,一定要记提交哦
except Exception,e:
db.rollback() #发生错误时回滚
print e
cursor.close()
sql = "insert into test2(url, time) values(%s,%s)" #注意此处与前一种形式的不同
par = (Url,Time)
cursor = db.cursor()
try:
cursor.execute(sql,par)
db.commit() #提交到数据库执行,一定要记提交哦
except Exception,e:
db.rollback() #发生错误时回滚
print e
cursor.close()
在该种形式下,若某个参数的值为空,直接在变量par中的相应位置的参数用None替换即可,即
par = (Url,None)
Created at 2017.03.13.