为什么MySQL执行时返回None?

发布于 2021-01-29 14:58:45

我正在尝试使用Python(3.4)MySQL模块通过以下代码在本地MySQL数据库上进行查询:

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

据我所知,连接成功,数据库由几行组成,但是查询始终返回none类型。

MySQL执行功能哪些实例返回None?

关注者
0
被浏览
86
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    查询执行没有返回值。

    您需要遵循的模式是:

    cursor creation;
    cursor, execute query;
    cursor, *fetch rows*;
    

    或在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)
    

    还有一些数据库模块允许您使用for … in模式遍历游标,但对mysql进行三重检查。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看