это мой код:
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='localhost',
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) values (%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()
когда я использовал этот код, соединение устанавливается, но оно вызывает эту ошибку при вставке информации в базу данных SQL, созданную mysql workbench
ошибка:
Connected to MySQL database using C extension... MySQL Server version on 8.0.12
connection is closed
Traceback (most recent call last):
File "/Users/mahmoudtarek/Desktop/mth1/index.py", line 60, in add_mahmoud_friends
self.c.execute('''INSERT INTO mtth (mth_friends) values (%s)''', (mth_friends))
File "/Users/mahmoudtarek/PycharmProjects/untitled/venv/lib/python3.7/site-packages/mysql/connector/cursor.py", line 533, in execute
if not self._connection:
ReferenceError: weakly-referenced object no longer exists
Process finished with exit code 134 (interrupted by signal 6: SIGABRT)