Python 什么';我的代码怎么了?self.c.execute(“从书中删除,其中书名=”&“x2B”str(delBooks))
在self.c.execute(“DELETE from books WHERE book_name=“+str(delBooks))中,我想从deleteBooks方法调用变量delBooks,但它不起作用?这就是PyQt5,我使用的数据库是sqlite3Python 什么';我的代码怎么了?self.c.execute(“从书中删除,其中书名=”&“x2B”str(delBooks)),python,sqlite,pyqt5,Python,Sqlite,Pyqt5,在self.c.execute(“DELETE from books WHERE book_name=“+str(delBooks))中,我想从deleteBooks方法调用变量delBooks,但它不起作用?这就是PyQt5,我使用的数据库是sqlite3 class DeleteDialog(QDialog): def __init__(self, *args, **kwargs): super(DeleteDialog, self).__init__(*args,
class DeleteDialog(QDialog):
def __init__(self, *args, **kwargs):
super(DeleteDialog, self).__init__(*args, **kwargs)
self.QBtn = QPushButton()
self.QBtn.setText("Delete Book")
self.setWindowTitle("Delete Book")
self.setFixedWidth(300)
self.setFixedHeight(100)
self.QBtn.clicked.connect(self.deleteBooks)
layout = QVBoxLayout()
self.deleteinput = QLineEdit()
self.deleteinput.setPlaceholderText("Book Name")
layout.addWidget(self.deleteinput)
layout.addWidget(self.QBtn)
self.setLayout(layout)
def deleteBooks(self):
delBooks = ""
delBooks = self.deleteinput.text()
try:
self.conn = sqlite3.connect("database.db")
self.c = self.conn.cursor()
self.c.execute("DELETE from books WHERE book_name="+str(delBooks))
self.conn.commit()
self.c.close()
self.conn.close()
QMessageBox.information(QMessageBox(),'Successful','Deleted From Table Successful')
self.close()
except Exception:
QMessageBox.warning(QMessageBox(), 'Error', 'Could not Delete that book from database.')
请描述错误。乍一看,我猜名字周围缺少引号。顺便说一句,您的代码中存在SQL注入漏洞。正确的SQL参数替换可能会解决这两个问题。但正如我所说,正确的问题描述会很有帮助。删除
try/except
语句,或者打印Exception
以获取错误。我的代码实际上是300加上我只是在有问题的地方发布代码,谢谢你的回答,我会尝试。当我删除try/except语句时,这是错误显示,self.c.execute(“DELETE from books WHERE book_name=“+str(delBooks))sqlite3.operational错误:没有这样的列:chemistry你能帮我解决这个问题吗?请描述错误。乍一看,我猜名字周围缺少引号。顺便说一句,您的代码中存在SQL注入漏洞。正确的SQL参数替换可能会解决这两个问题。但正如我所说,正确的问题描述会很有帮助。删除try/except
语句,或者打印Exception
以获取错误。我的代码实际上是300加上我只是在有问题的地方发布代码,谢谢你的回答,我会尝试。当我删除try/except语句时,这是错误显示,self.c.execute(“DELETE from books WHERE book_name=“+str(delBooks))sqlite3.OperationalError:没有这样的列:chemistry你能帮我解决这个问题吗?