使用PyMySQL连接MySQL数据库时没有返回任何内容(使用'self'变量)

时间:2017-06-27 05:12:37

标签: mysql self pymysql

我正在尝试使用PyMySQL测试与MySQL数据库的数据库连接。我一直试图把它放到一个类中,但遇到问题,脚本现在什么也没有返回。这是我第一次使用'self'变量。

  1. 我有一个名为'items'的数据库表,其中包含以下属性:

    enter image description here

  2. 我的原始代码编写如下:

    import pymysql.cursors
    
    #Connect to the database
    connection = pymysql.connect(host='localhost',
        user='root',
        password='',
        db='testDB',
        charset='utf8mb4',
        cursorclass=pymysql.cursors.DictCursor)
    
    try:
        with connection.cursor() as cursor:
        #Read a single record
        sql = "SELECT * FROM items"
        cursor.execute(sql)
        result = cursor.fetchone()
        print(result)
    
    finally:
        connection.close()
    
  3. 此脚本运行正常并返回以下结果: {'id':2}

    1. 我一直试图把这段代码放到一个类中,我现在正在使用'self',但遇到了脚本什么都不返回的问题。

      import pymysql.cursors
      
      class mySQLTest(object):
      
          def __init__(self):
              self.conn = pymysql.connect(host='localhost',
                                   user='root',
                                   password='',
                                   db='testDB',
                                   charset='utf8mb4',
                                cursorclass=pymysql.cursors.DictCursor)
              self.cursor = self.conn.cursor()
      
          def test(self):
              try:
                  with self.cursor:
                      sql = "SELECT * FROM items"
                      self.cursor.execute(sql)
                      result = self.cursor.fetchall()
                      print(result)
      
              finally:
                  self.conn.close
      
    2. 当我运行此脚本时,没有返回任何内容(我希望返回值2,3,4,5)。它简单地说:'过程以退出代码0完成。

      我认为在定义函数时我做错了什么?感谢任何帮助/指导。

0 个答案:

没有答案