python中的cursor[备忘]

import MySQLdb

conn = MySQLdb.connect(host='localhost', user='root', passwd='123456, db='dbname', charset='utf8')

cursor = conn.cursor()

cursor.execute(sql)

成功result为1;失败为0。

此时,cursor就是一个Cursor对象,这个cursor是一个实现了迭代器(def __iter__())和生成器(yield)的MySQLdb对象,这个时候cursor中还没有数据,只有等到fetchone()或fetchall()的时候才返回一个元组tuple,才支持len()和index()操作,这也是它是迭代器的原因。但同时为什么说它是生成器呢?因为cursor只能用一次,即每用完一次之后记录其位置,等到下次再取的时候是从游标处再取而不是从头再来,而且fetch完所有的数据之后,这个cursor将不再有使用价值了,即不再能fetch到数据了。

原文地址:https://www.cnblogs.com/shenfei2031/p/2229964.html