python rowcount_python语言中,对于cursor的查询明明有结果,为什么print cursor.rowcount结果为-1?...

从网上搜了很多资料,没有对口的,抓狂。没办法自己研究了一下,相信写出来能够帮到很多人。

下边是我写的一段代码,为了方便大家看我加了行号。从下边代码中第4行可以看到,rowcount结果为-1,但是从第5行却可以将查询结果打印出来。显然查询是有结果的,为什么rowcount为-1呢?

第1行>>> db = mysql.connector.Connect(host=‘10.1.1.47’, port=2205, user=‘boss’, passwd=‘qwekkk’,charset=utf8,db='PP_01')

第2行>>> cursor_pet = db.cursor()

第3行>>> cursor_pet.execute('select userid,petid from t_pp_pet_01')

第4行>>> print cursor_pet.rowcount

-1

第5行>>> for list in cursor_pet.fetchall():

... print list

...

(1, 11)

(1, 12)

(2, 11)

(3, 11)

(2, 10)

(4, 15)

下边是解决方案。我们应该在打印查询行数之前先调用一下fetchall()这个函数,然后行数rowcount就打印出来啦:

第1行>>>db = mysql.connector.Connect(host=‘10.1.1.47’, port=2205, user=‘boss’, passwd=‘qwekkk’,charset=utf8,db='PP_01')

第2行>>> cursor_pet = db.cursor()

第3行>>> cursor_pet = db.cursor()

第4行>>> cursor_pet.execute('select userid,petid from t_pp_pet_01')

第5行>>> cursor_pet.fetchall()

[(1, 11), (1, 12), (2, 11), (3, 11), (2, 10), (4, 15)]

第6行>>> print cursor_pet.rowcount

6

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值