Member 13984598 Ответов: 1

Как вставить данные в локальную базу данных с помощью Python?


Я попытался вставить данные в свою локальную базу данных, но она продолжает показывать мне такую ошибку(хотя соединение установлено) :

Обратная трассировка (самый недавний призыв последнего):
Файл "/Users/mahmoudtarek/Desktop/mth1/index.py", строка 60, в add_mahmoud_friends
самостоятельно.гр.выполнить ("вставить в mtth (mth_friends) значение (%- ы)"',(mth_friends))
Файл "/Users/mahmoudtarek/PycharmProjects/untitled/venv/lib/python3.7/site-packages/mysql/connector/cursor.py", строка 533, in execute
если не самость._connection:
ReferenceError: объект со слабой ссылкой больше не существует
Процесс завершен с кодом выхода 134 (прерывается сигналом 6: SIGABRT)




так в чем же проблема ?

Что я уже пробовал:

from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
import mysql.connector
import mysql.connector.cursor
from mysql.connector import errorcode
import sys
import os
from os import path
from PyQt5.uic import loadUiType

FORM_CLASS,_ = loadUiType(path.join(path.dirname(__file__),"mainwindow.ui"))

class Main(QMainWindow,FORM_CLASS):
    def __init__(self,parent=None):
        super(Main,self).__init__(parent)
        QMainWindow.__init__(self)
        self.setupUi(self)
        self.InitUI()
        self.Handel_buttons()
        self.Handel_db_connections()

    def InitUI(self):
        ## changes in the run time
        pass

    def Handel_buttons(self):
          ## all buttons in the app
        self.pushButton.clicked.connect(self.add_mahmoud_friends)
        self.pushButton_3.clicked.connect(self.update_mahmoud_friends)
        self.pushButton_2.clicked.connect(self.delete_mahmoud_friends)

    def Handel_db_connections(self):

        try:
            conn = mysql.connector.connect(host='127.0.0.1',
                                                       database='mydb',
                                                       user='root',
                                                       password='************',
                                                       use_pure=True)  # use_pure is set to true
            if conn.is_connected():
                db_Info = conn.get_server_info()
                print("Connected to MySQL database using C extension... MySQL Server version on ", db_Info)
                self.c = conn.cursor()

        except errorcode as e:
            print("Error while connecting to MySQL using C extension", e)
        finally:
            # closing database connection.
            if (conn.is_connected()):


                print("connection is closed")
    ####################################################
    ## mahmoud info


    def add_mahmoud_friends(self):
        mth_friends = self.lineEdit.text()
        self.c.execute('''INSERT INTO mtth (mth_friends) VALUE (%s)''',(mth_friends))

        print("done")

    def update_mahmoud_friends(self):
        pass

    def delete_mahmoud_friends(self):
        pass

def main():
    app= QApplication(sys.argv)
    window =Main()
    window.show()
    app.exec_()

if __name__ == '__main__':
         main()

1 Ответов

Рейтинг:
2

raddevus

self.c.execute('''INSERT INTO mtth (mth_friends) VALUE (%s)''',(mth_friends))


попробуйте вместо этого:
self.c.execute('''INSERT INTO mtth (mth_friends) values (%s)''',(mth_friends))


Обратите внимание, что слово VALUE является множественным числом с s : values


Member 13984598

все еще проблема, хотя он распознает мою базу данных sql