1、一旦执行了 close() 方法,再试图使用连接对象的方法将会导致异常
2、类似 commit(), rollback() 方法仅对支持事务的数据库有意义
3、对不支持游标的数据库来说, cursor() 方法仍然会返回一个尽量模仿游标对象的对象
# 游标(cursor)是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果。每个游标区都有一个名字,用户可以用SQL语句逐一从游标中获取记录,并赋给主变量,交由主语言进一步处理
4、一旦你完成了数据库连接,并且关闭了游标对象,你应该执行 commit() 提交你的操作,然后关闭这个连接
5、连接对象方法:
close() 关闭数据库连接
commit() 提交当前事务
rollback() 取消当前事务
cursor() 使用这个连接创建并返回一个游标或类游标的对象
errorhandler(cxn, cur, errcls, errval)
6、游标对象属性
arraysize 使用 fechmany() 方法一次取出多条记录,默认值为 1
connectionn 创建此游标对象的连接(可选)
description 返回游标活动状态(一个包含七个元素的元组): (name, type_code, display_size, internal_size, precision, scale, null_ok);只有 name 和 type_code 是必须提供的
lastrowid 返回最后更新行的 id (可选的),如果数据库不支持行 id,默认返回 None
rowcount 最后一次 execute() 操作返回或影响的行数
callproc(func[, args]) 调用一个存储过程
close() 关闭游标对象
execute(op[, args]) 执行一个数据库查询或命令
executemany(op, args) 类似 execute() 和 map() 的结合,为给定的每一个参数准备并执行一个数据库查询或命令
fetchone() 得到结果集的下一行
fetchmany([size=cursor.arraysize]) 得到结果集的下几行
fetchall() 返回结果集中剩下的所有行
__iter__() 创建一个迭代对象(可选;参阅 next())
messages 游标执行后数据库返回的信息列表(元组集合)(可选)
next() 使用迭代对象得到结果集的下一行(可选;类似 fetchone() ,参阅 __iter__() )
nextset() 移到下一个结果集(如果支持的话)
rownumber 当前结果集中游标的索引(以行为单位,从 0 开始)(可选)
setinput_sizes(sizes) 设置输入最大值(必须有,但具体实现是可选的) # 函数
setoutput_size(size[, col]) 设置大列的缓冲区大写(必须有,但具体实现是可选的) # 怀疑翻译有误
7、游标对象最重要的属性是 execute*() 和 fetch*() 方法,所有对数据库服务器的请求都由它们来完成
对 fetchmany() 方法来说,设置一个合理的 arraysize 属性会很有用。当然,在不需要时关掉游标对象也是个好主意
8、MySQLdb 的 connect 方法的用户名和密码的关键字是: user, passwd
其它关键字:
数据库 db
host host
9、当报错:not all arguments converted during string formatting 的时候,
可以这样写:cur.execute("INSERT INTO cnb (title) VALUES(%s)", (items["title"], ))
关键的地方就是 (items["title"], ) 中的逗号,千万不要省略
10、MySQL数据类型和常用字段属性总结
http://www.jb51.net/article/55853.htm