mysql - 如何在 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) 结束
谁能告诉我错误在哪里?
解决方案
推荐阅读
- python - 如何找到三列中的数字超过熊猫中其他列值的一半
- firebase - 每天在 Firestore 中执行功能
- flutter - 如何在 Flutter 中为 Material Icons 和 Font Awesome Icons 使用相同的大小?
- node.js - Socket.io 禁用 perMessageDeflate
- google-data-studio - 在 Google 数据洞察社区连接器中刷新凭据
- python - 如何检查没有顺序的列表中存在的列表列表
- java - 如何让 JAVA_HOME 显示给我看?如果我先做 source ~ / .bash_profile 它只会向我显示
- powershell - 具有返回值空间的 curl 命令无法分配给 shell 中的变量
- git - 在 Azure DevOps 中使用 Git 进行门控推送
- entity-framework-core - 然后在 Entity Framework Core 3.1.4 中包含缺失?