Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 什么';我的代码怎么了?self.c.execute(“从书中删除,其中书名=”&“x2B”str(delBooks))_Python_Sqlite_Pyqt5 - Fatal编程技术网

Python 什么';我的代码怎么了?self.c.execute(“从书中删除,其中书名=”&“x2B”str(delBooks))

Python 什么';我的代码怎么了?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,

在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, **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你能帮我解决这个问题吗?