Click here to Skip to main content
13,768,405 members
Rate this:
 
Please Sign up or sign in to vote.
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:

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 14-Sep-18 4:09am
Updated 14-Sep-18 5:30am

1 solution

Rate this: bad
 
good
Please Sign up or sign in to vote.

Solution 1

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


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


Notice that the word VALUE is plural with an s : values
  Permalink  
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)

  Print Answers RSS
Top Experts
Last 24hrsThis month


Advertise | Privacy | Cookies | Terms of Service
Web05-2016 | 2.8.181116.1 | Last Updated 14 Sep 2018
Copyright © CodeProject, 1999-2018
All Rights Reserved.
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100