首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

关于MySQLdb,该如何处理

2012-03-06 
关于MySQLdbimport MySQLdbdb MySQLdb.connect(host localhost, user root, passwd ?????,

关于MySQLdb
import MySQLdb
db = MySQLdb.connect(host = 'localhost', user = 'root', passwd = '?????', db = 'test')
cursor = db.cursor()
cursor.execute('select * from cb_table')
rs = cursor.fetchall()
print rs

"""
如果我把
cursor = db.cursor()
cursor.execute('select * from cb_table')
改为
db.cursor().execute('select * from callback_table')
就会报ProgrammingError: execute() first错误为什么呢
"""

[解决办法]
因为第一种, 会生成一个范围内有效的实例 cursor 这个实例在后面的 fetchall 中用到.

而第二种, 则只会在.execute 行产生一个有效范围只在一行内的内建 cursor 实例.
而这个实例你没有办法继续使用.

如果第二种方式.
你 db.cursor().execute(...)
再fetchall 时,你用啥呢?
db.cursor().fetchall...?

你确认 两个db.cursor()是同一个实例吗? 如果你的应用不要求在 cursor 中再继续,如使用 update insert 等语句.只要求 execute 即可的话, 是可以那样写的.

热点排行