Click here to Skip to main content
15,891,136 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
I tried to insert data into my local database but it keeps showing me error like that(although connection is established) :

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) VALUE (%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)




so, where is the problem ?

What I have tried:

Python
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()
Posted
Updated 14-Sep-18 4:30am

1 solution

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


try instead:
Python
self.c.execute('''INSERT INTO mtth (mth_friends) values (%s)''',(mth_friends))


Notice that the word VALUE is plural with an s : values
 
Share this answer
 
Comments
Member 13984598 14-Sep-18 12:43pm    
still problem although it recognize my sql database

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900