_mysql_коннектор.Ошибка MySQLInterfaceError: метод типа Python не может быть преобразован

#python #mysql #mysql-python

Вопрос:

 ##GUI FILE root = Tk() root.title("Inventory Management") root.geometry('1000x600')  def add_inventory():  myInventory = product.Product()  myInventory.setProductID(productID.get())  myInventory.setProdName(productName.get())  myInventory.addProduct()  productID = IntVar() productName = StringVar()  prodIDentry = Entry(productframe, width=22, textvariable=productID) prodNameentry = Entry(productframe, width=22, textvariable=productName)  btn_add = Button(productframe, text="Add", font="Verdana 10 bold", command = add_inventory)  

 ##product file class Product:  def __init__(self):  self.ProductID = ''  self.ProdName = ''   prodID = self.getProductID()  prodname = self.getProdName()    def getProductID(self):  return self.ProductID  def setProductID(self, value):  self.ProductID = value   def getProdName(self):  return self.getProdName  def setProdName(self, value):  self.ProdName = value   def addProduct(self):  mydb = mysql.connector.connect(  host='localhost',  database='PHP',  user='root',  password=''  )   mycursor = mydb.cursor()   sql1 = "INSERT INTO product (ProductID, ProdName) VALUES (%s,%s)"  val = (prodID, prodname)   mycursor.execute(sql1, val)  mydb.commit()  

У моей программы есть графический интерфейс, который требует ввода данных пользователем, затем он примет ввод и внесет его в базу данных одним нажатием кнопки. Это несколько моих переменных, которые нужно вставить. Но он продолжает возвращаться:_mysql_connector.Ошибка MySQLInterfaceError: метод типа Python не может быть преобразован

Комментарии:

1. Что произойдет, если вы print(val) непосредственно перед казнью?

2. @AKX привет, извините, я только что добавил больше кодов в свою проблему, посмотрите, пожалуйста :/ мне нужна помощь

3. Ваш код не имеет смысла. Во-первых, теперь в теле класса есть код MySQL, вне какой-либо функции? Кроме getProductID() того, в коде нигде нет функции.

4. @AKX я только что отредактировал снова, мне так жаль, что я не очень хорошо знаком с тем, как показать проблему… вам лучше понять сейчас?

5. Мне очень жаль, но нет. Если у вас есть проблемный сегмент, который вызывает self.getProductID() функцию, вам также следует включить эту функцию в сообщение, например.

Ответ №1:

Ваша проблема заключается в функции

 def getProdName(self):  return self.getProdName  

Он возвращает саму себя ( getProdName ), а не переменную имени продукта.

Соединитель MySQL говорит

Ошибка MySQLInterfaceError: метод типа Python не может быть преобразован

поскольку он не может преобразовать метод ( getProdName ) во что-то, что мог бы понять MySQL.

Измените getProdName() метод для возврата ProdName :

 def getProdName(self):  return self.ProdName  

(или вообще избавьтесь от этого; сеттеры и геттеры не очень популярны в Python.)

Комментарии:

1. ах, теперь я это вижу… Спасибо!!!!