【发布时间】:2017-06-26 18:17:11
【问题描述】:
我正在尝试创建一个类和方法来连接到 Mysql 数据库并根据我收到的要求更新表。我的代码在不使用任何类和方法的情况下更新了表格,但在包含该类后立即停止工作。
示例代码 -
import MySQLdb
from opswareConnect import data
from echoResourceConfig import host, user, passwd, db
class echoResource(object):
def __init__(self):
self.host = host
self.user = user
self.passwd = pwsswd
self.db = db
self.cursor = self.connect()
def connect(self):
try:
self.cnx = MySQLdb.connect(host, user, passwd, db)
if cnx:
print(self.cnx)
self.cursor = self.cnx.cursor()
except Exception, e:
print "Error"
return self.cursor
def updateResource(self, cursor):
select_query = "SELECT resource_id, resource_name, support_contact_id FROM echo_resource WHERE resource_name = (%s);"
update_query = "UPDATE echo_resource \
SET support_contact_id = ( \
SELECT contact_id FROM contacts WHERE last_name = (%s)) \
WHERE resource_name = (%s);"
for row in data:
arg1 = [row["system_name"],]
arg2 = [row["fdc_inv_sa_team"]]
row = self.cursor.execute(select_query, arg1)
if row:
data = self.cursor.fetchall()
for res in data:
print(res)
upd_row = self.cursor.execute(update_query, (arg2, arg1))
if not upd_row:
print("Update failed")
else:
self.cnx.commit()
print("update successful")
else:
print("No data found for "+row["system_name"])
【问题讨论】:
-
你是如何实例化和使用这个类的?
-
我只是使用“python 文件名”命令运行它。 @丹尼尔罗斯曼
-
那么您希望它如何工作?您已经创建了一个类,大概是这样您就可以在其他代码中使用它。您需要在某个地方实际调用该类。
-
创建了一个对象并调用了方法。连接成功,但代码在运行 updateResource() 时抛出异常。 @丹尼尔罗斯曼
-
停止发布重复的答案,并使用更新的代码编辑您的问题。
标签: python function class methods mysql-python