2017-05-22 3 views
1

以下、このコードはうまく動作しますが、私は(これはMySQLdbはを使用して、私の最初の時間です)関数にこのコードを分けたい、使用複数の機能(パイソン)

import MySQLdb 

# Open database connection 
db = MySQLdb.connect("localhost","user_name","pass","db_name") 

cursor = db.cursor() 
sql = "SELECT activity_log.datetime FROM activity_log" 
cursor.execute(sql) 
date_data = cursor.fetchall() 
for content in date_data: 
    print content 

# disconnect from server 
db.close() 

質問:どのように私は作成することができます1つのデータベース接続と、これは(動作しない)私がこれまで書いてきたもので、複数の機能にそれを使用します。

import MySQLdb 

class DB(): 
    def __init__(self): 
     db = MySQLdb.connect("locahost", "user_name", "pass", "db_name") 
     self.cur = db.cursor() 

    def time_statistic(self): 
     sql = "SELECT activity_log.datetime FROM activity_log" 
     self.cur.execute(sql) 
     self.date_data = self.cursor.fetchone() 
     for content in self.date_data: 
      print content 

    def test1(self): 
     pass 

if __name__ == '__main__': 

    db = DB.connect("db_name") 
    db.time_statistic(self) 
    db.test1(self) 
    db.close() 

答えて

0

あなたは必ずクラスが接続することを確認するためにのinitに引数を渡す必要があります右のDBに。

引数を<に置き換えて、dbに接続するのに必要な実際の値に置き換えます。上記のコードでエラー処理を追加することもできます。

+0

エラーメッセージここでは、あなたの答えのためにあなたにColwinありがとうございますが、コードはまだ動作しません: 'ファイル "read_MySql.py"、4行目、 クラスDB(中): ファイル「read_MySqlを。 py "、行7、DB内 self.cur = db.cursor() NameError:名前 'db'が定義されていません。 何が間違っている可能性がありますか? –

+0

この行はあなたのinitにありますか? db = MySQLdb.connect(サーバ、ユーザ、パスワード、db_name) – Colwin

+0

はい、それは - > 'db = MySQLdb.connect(サーバ、ユーザ、パスワード、db_name) ' –