Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
类型错误:';连接';对象在使用mysqldb的python脚本中不可调用_Python_Mysql_Database - Fatal编程技术网

类型错误:';连接';对象在使用mysqldb的python脚本中不可调用

类型错误:';连接';对象在使用mysqldb的python脚本中不可调用,python,mysql,database,Python,Mysql,Database,使用此代码时,由于连接对象不可调用,im将出现错误。 我的目标是创建单个连接对象,并将其用于各种sql查询。我是python脚本编写新手。因此,如果有人能帮助我克服这个错误,那么我在编码方面取得更大进展将非常有用。提前感谢。您确实在数据库类中定义了一个名为def的函数。但是,在同一类的\uuuuu init\uuuu方法中,您可以这样做 import MySQLdb class database(): def __init__(self, host, user, pwd, db):

使用此代码时,由于连接对象不可调用,im将出现错误。
我的目标是创建单个连接对象,并将其用于各种sql查询。我是python脚本编写新手。因此,如果有人能帮助我克服这个错误,那么我在编码方面取得更大进展将非常有用。提前感谢。

您确实在数据库类中定义了一个名为def的函数。但是,在同一类的
\uuuuu init\uuuu
方法中,您可以这样做

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()
它用一个MySQLdb连接对象替换您刚才创建的函数。因此出现了错误

很多人在开始使用数据库api时都会苦于为该api创建包装器,然而这只会增加代码的复杂性。通常,数据库API设计得很好。请考虑直接使用它没有包装。

得到::TQSM…实际上,我创建的函数是db。不管怎样,我从我的同事那里理解了你的回答;)
self.db = MySQLdb.connect(host, user, pwd, db)