I connect local database to app then I want to bring these data into app again to be edited. That is my code
import sys
import os
import time
from PyQt5 import QtCore, QtGui, QtWidgets, uic
import mysql.connector
from mysql.connector import errorcode
FORM_CLASS, _ = uic.loadUiType(os.path.join(os.path.dirname(__file__),"mahmoudtarek.ui"))
class Main(QtWidgets.QMainWindow, FORM_CLASS):
def __init__(self,parent=None):
super(Main,self).__init__(parent)
self.setupUi(self)
self.InitUI()
self.conn = None
self.handle_buttons()
self.handle_db_connections()
def InitUI(self):
## changes in the run time
pass
def handle_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)
self.pushButton_6.clicked.connect(self.search_mahmoud_friends)
def handle_db_connections(self):
try:
self.conn = mysql.connector.connect(
host='127.0.0.1',
database='mydb',
user='root',
password='134668691011',
use_pure=True) # use_pure is set to true
if self.conn.is_connected():
db_Info = self.conn.get_server_info()
print("Connected to MySQL database using C extension... MySQL Server version on ", db_Info)
except mysql.connector.Error as err:
print("Error while connecting to MySQL using C extension", err)
def add_mahmoud_friends(self):
mth_friends = self.lineEdit.text()
mth_search = self.lineEdit_4.text()
if self.conn:
c = self.conn.cursor()
try:
c.execute('''INSERT INTO ahmed (mth_friends,mth_search) values (%s,%s)''', (mth_friends,mth_search))
self.conn.commit()
self.lineEdit.setText('')
self.lineEdit_4.setText('')
self.statusBar.showMessage('ok mahmoud')
except mysql.connector.Error as err:
print("Error: ", err)
def update_mahmoud_friends(self):
pass
def delete_mahmoud_friends(self):
pass
def search_mahmoud_friends(self):
sql = '''SELECT * FROM ahmed WHERE mth_search = %s'''
mth_search = self.lineEdit_3.text()
self.conn.cursor.execute(sql , [(mth_search)])
data = self.conn.fetchall()
for row in data :
print(row)
def closeEvent(self, event):
if self.conn:
self.conn.close()
super(Main, self).closeEvent(event)
def main():
app= QtWidgets.QApplication(sys.argv)
window =Main()
window.show()
app.exec_()
if __name__ == '__main__':
main()
Error appears here when I import data by printing row in my SQL Database.
Error
Connected to MySQL database using C extension... MySQL Server version on 8.0.12 Traceback (most recent call last): File "/Users/mahmoudtarek/Desktop/mth1/index.py", line 73, in search_mahmoud_friends self.conn.cursor.execute(sql , [(mth_search)]) AttributeError: 'function' object has no attribute 'execute'
so, can it be solved or there is another method?