假設(shè)要插入的表結(jié)構(gòu)如圖所示:
mysql表結(jié)構(gòu)
一、向表test2中插入數(shù)據(jù)的主要流程如下:
import MySQLdb
import datetime
'''連接數(shù)據(jù)庫(kù)'''
db = MySQLdb.connect(host = 'localhost',#本地?cái)?shù)據(jù)庫(kù)
user = 'root', #用戶名
passwd = 'XXXXX', #數(shù)據(jù)庫(kù)密碼
db = 'test', #數(shù)據(jù)庫(kù)名
charset = 'utf8') #數(shù)據(jù)庫(kù)編碼
'''待插入的數(shù)據(jù)'''
Url = "http://www.baidu.com"
Time = datetime.datetime.now() #系統(tǒng)當(dāng)前時(shí)刻
'''插入數(shù)據(jù)'''
'''關(guān)閉連接'''
db.close()
二焕毫、Python向mysql逐條插入數(shù)據(jù)一般有兩種形式:
sql = "insert into test2(url, time) values('%s','%s')" % (Url拉岁,Time)
cursor = db.cursor()
try:
cursor.execute(sql)
db.commit() #提交到數(shù)據(jù)庫(kù)執(zhí)行,一定要記提交哦
except Exception,e:
db.rollback() #發(fā)生錯(cuò)誤時(shí)回滾
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() #提交到數(shù)據(jù)庫(kù)執(zhí)行辜王,一定要記提交哦
except Exception,e:
db.rollback() #發(fā)生錯(cuò)誤時(shí)回滾
print e
cursor.close()
在該種形式下,若某個(gè)參數(shù)的值為空罐孝,直接在變量par中的相應(yīng)位置的參數(shù)用None替換即可呐馆,即
par = (Url,None)
Created at 2017.03.13.