# -*- coding: UTF-8 -*-
# 来源:疯狂的蚂蚁的博客总结整理
import MySQLdb as mdb
import sys
try:
#用读文件模式打开图片
fin = open("../web.jpg")
#将文本读入img对象中
img = fin.read()
#关闭文件
fin.close()
except IOError, e:
#如果出错,打印错误信息
print "Error %d: %s" % (e.args[0],e.args[1])
sys.exit(1)
try:
#链接mysql,获取对象
conn = mdb.connect(host='localhost',user='root',passwd='root', db='test')
#获取执行cursor
cursor = conn.cursor()
#直接将数据作为字符串,插入数据库
cursor.execute("INSERT INTO Images SET Data='%s'" % mdb.escape_string(img))
#提交数据
conn.commit()
#提交之后,再关闭cursor和链接
cursor.close()
conn.close()
except mdb.Error, e:
#若出现异常,打印信息
print "Error %d: %s" % (e.args[0],e.args[1])
sys.exit(1)
# -*- coding: UTF-8 -*-
# 来源:疯狂的蚂蚁的博客总结整理
import MySQLdb as mdb
import sys
try:
#连接mysql,获取连接的对象
conn = mdb.connect('localhost', 'root', 'root', 'test');
cursor = conn.cursor()
#执行查询该图片字段的SQL
cursor.execute("SELECT Data FROM Images LIMIT 1")
#使用二进制写文件的方法,打开一个图片文件,若不存在则自动创建
fout = open('image.png','wb')
#直接将数据如文件
fout.write(cursor.fetchone()[0])
#关闭写入的文件
fout.close()
#释放查询数据的资源
cursor.close()
conn.close()
except IOError, e:
#捕获IO的异常 ,主要是文件写入会发生错误
print "Error %d: %s" % (e.args[0],e.args[1])
sys.exit(1)
--------------------------------------------------------------------------------------
实例9、使用Transaction即事务(手动提交,自动回滚)
# -*- coding: UTF-8 -*-
# 来源:疯狂的蚂蚁的博客总结整理
import MySQLdb as mdb
import sys
try:
#连接mysql,获取连接的对象
conn = mdb.connect('localhost', 'root', 'root', 'test');
cursor = conn.cursor()
#如果某个数据库支持事务,会自动开启
#这里用的是MYSQL,所以会自动开启事务(若是MYISM引擎则不会)
cursor.execute("UPDATE Writers SET Name = %s WHERE Id = %s",
("Leo Tolstoy", "1"))
cursor.execute("UPDATE Writers SET Name = %s WHERE Id = %s",
("Boris Pasternak", "2"))
cursor.execute("UPDATE Writer SET Name = %s WHERE Id = %s",
("Leonid Leonov", "3"))
#事务的特性1、原子性的手动提交
conn.commit()
cursor.close()
conn.close()
except mdb.Error, e:
#如果出现了错误,那么可以回滚,就是上面的三条语句要么执行,要么都不执行
conn.rollback()
print "Error %d: %s" % (e.args[0],e.args[1])
--------------------------------------------------------------------------------------
来自:http://www.jb51.net/article/34102.htm