mysql none,为什么MySQL执行时返回None?

I am trying to query on a local MySQL database using Python's (3.4) MySQL module with the following code:

class databases():

def externaldatabase(self):

try:

c = mysql.connector.connect(host="127.0.0.1", user="user",

password="password", database="database")

if c.is_connected():

c.autocommit = True

return(c)

except:

return(None)

d = databases().externaldatabase()

c = d.cursor()

r = c.execute('''select * from tbl_wiki''')

print(r)

> Returns: None

As far as I can tell, the connection is successful, the database is composed of several rows but the query always returns the none type.

What instances does the MySQL execute function return None?

解决方案

Query executions have no return values.

The pattern you need to follow is:

cursor creation;

cursor, execute query;

cursor, *fetch rows*;

Or in python:

c = d.cursor()

c.execute(query) # selected rows stored in cursor memory

rows = c.fetchall() # get all selected rows, as Barmar mentioned

for r in rows:

print(r)

Also some db modules allow you to iterate over the cursor using the for...in pattern, but triple-check that regarding mysql.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值