首页 > 解决方案 > 如何在 python 中将数据添加到我的数据库中?

问题描述

我在 YouTube 上关注了如何从 GUI 向数据库添加数据的教程(我使用了 PyQt5,请告诉我它是否好用)和 pymysql 连接到 MySQL

在此处输入图像描述

这是代码

import sql as sql
from PyQt5 import QtGui
from PyQt5.QtWidgets import QApplication, QDialog, QLineEdit, QPushButton, QMessageBox,  QVBoxLayout
import sys
import pymysql as mdb
class Window(QDialog):
def __init__(self):
    super().__init__()

    self.title = "PyQt5 Insert Data"
    self.top = 100
    self.left = 100
    self.width = 300
    self.height = 100


    self.InitWindow()


def InitWindow(self):

    self.setWindowIcon(QtGui.QIcon("icon.png"))
    self.setWindowTitle(self.title)
    self.setGeometry(self.top, self.left, self.width, self.height)

    vbox = QVBoxLayout()

    self.name = QLineEdit(self)
    self.name.setPlaceholderText('Please Enter Your Name')
    self.name.setStyleSheet('background:yellow')
    self.name.setFont(QtGui.QFont("Sanserif", 15))

    vbox.addWidget(self.name)

    self.email = QLineEdit(self)
    self.email.setPlaceholderText('Please Enter Your Email')
    self.email.setFont(QtGui.QFont("Sanserif", 15))
    self.email.setStyleSheet('background:yellow')

    vbox.addWidget(self.email)

    self.button = QPushButton("Insert Data", self)
    self.button.setStyleSheet('background:green')

    self.button.setFont(QtGui.QFont("Sanserif", 15))
    vbox.addWidget(self.button)
    self.button.clicked.connect(self.InsertData)

    self.setLayout(vbox)

    self.show()



def InsertData(self):
    
    con = mdb.connect(host='localhost',
                     user='root',
                     password='',
                     db='excel_tab',
                     charset='utf8mb4')
    with con:
        cur = con.cursor()

         cur.execute("""INSERT INTO data (id, name, email)
                     "VALUES(%s, %s)"""
                     % (''.join(self.name.text()),
                                               ''.join(self.email.text())))
        

        
        QMessageBox.about(self,'Connection', 'Data Inserted Successfully')
        
        self.close()



 App = QApplication(sys.argv)
 window = Window()
 sys.exit(App.exec())

但是数据没有插入我的数据库中。当我运行它时,这是 python 显示给我的:

进程以退出代码 -1073740791 (0xC0000409) 结束

我也试过这段代码

sql = "INSERT INTO data (id, name, email)   VALUES(%s, %s)"
        cur.execute(sql,(''.join(self.name.text()),''.join(self.email.text())))

这给出了这个错误:

进程以退出代码 -1073740791 (0xC0000409) 结束

谁能告诉我错误在哪里?

标签: mysqlpython-3.x

解决方案


推荐阅读