2017-01-16 5 views
2
import MySQLdb 

class database(): 

def __init__(self, host, user, pwd, db): 

    self.db = MySQLdb.connect(host, user, pwd, db) 

    self.cursor = self.db.cursor() 

# FUNCTION FOR DATABASE VIEW # 
def db(self): 

#SQL command 
    sql = "select * from details" 
    try: 
    self.cursor.execute(sql) 

    results = self.cursor.fetchall() 

    for row in results: 
    print row[0], row [1], row[2] 

    except: 
    print "error" 

#Closing database 
self.db.close() 

db = database('localhost', 'root', 'password', 'test') 

db.db() 

このコードでは、接続オブジェクトは呼び出し可能ではありません。 私の目的は、単一の接続オブジェクトを作成し、さまざまなSQLクエリに使用することです。私はPythonスクリプトに新しい。だから誰でもこのエラーを克服するのに役立ちます、それは私のコーディングでさらに移動するためには非常に便利です。前もって感謝します。TypeError:mysqldbを使用したPythonスクリプティングで 'Connection'オブジェクトが呼び出せません。

答えて

0

データベースクラスにdefという関数を定義したことは事実です。しかし、同じクラスの__init__メソッドの中でこれを行います。

self.db = MySQLdb.connect(host, user, pwd, db) 

これは、あなたが作成した機能をMySQLdb接続オブジェクトで置き換えたものです。したがって、エラー。

多くの人がデータベースAPIを使用して作業を開始すると、そのAPIのラッパーを作成することになりますが、コードを複雑にするだけです。通常、データベースAPIはよく設計されています。ラッパーなしで直接使用することを検討してください。

+0

それを得ました:) tqsm ..実際に作成した関数はdbです。とにかく私の同僚からの答えを理解する;) –

関連する問題