MySQLdb를 사용하여 데이터베이스를 만들었습니다.Mysqldb 업데이트 오류 typeerror 'str'개체를 호출 할 수 없습니다.
id(is int),
id_user(is int),
f_name(is str),
l_name(is str)
나는 기능 업데이트와 행을 업데이트 : 데이터베이스에서 나는 열 이름의 학생이있는 테이블이있다. 내 코드는 다음과 같습니다 :
def UpdateUser(self,e):
self.checkid_user=int(self.updateid[0]) #ok there
self.c2name=self.name.GetValue() #this is from a textctrl in wxpython
self.c2lastname=self.lastname.GetValue()#this is from a textctrl in wxpython
ne=self.c2name.encode("utf-8")#greek word
fe=self.c2lastname.encode("utf-8")#greek word
f="'"+str(ne)+"'"
l="'"+str(fe)+"'"
print f #ok
print l #ok
db=mdb.connect(host="localhost",use_unicode="True",charset="utf8",user="root",passwd="root",db="test")
cursor = db.cursor()
sql="""SELECT id_user FROM student"""
try:
# Execute the SQL command
cursor.execute(sql)
# Commit your changes in the database
db.commit()
except:
# Rollback in case there is any error
db.rollback()
rows = cursor.fetchall()
for row in rows:
r=int(row[0])
if r==self.checkid_user: #ok there
sql2 = """UPDATE student
SET f_name=%s,l_name=%s
WHERE id_user=%s"""
# Execute the SQL command
cursor.execute(sql2(f,l,r))
# Commit your changes in the database
db.commit()
db.rollback()
# disconnect from server
db.close()
내가 추적 오류를 가지고 함수를 실행하면 :
typeerror 'str' object is not callable
내가 호출하지만 아무것도 할 f
및 l
을 사용합니다.
이 문제를 해결하려면 여기에 도움이 필요합니다. 감사!
후 오류 메시지의 나머지
그러나
sql2
가 아니라 문자열을 포함합니다. 오류가 실제로 어디에 있는지 알려줍니다. – kindall