python - QSqlQuery插入数据库不起作用

标签 python pyqt pyqt4 qsqlquery qsqldatabase

我使用PyQt4.QtSql.QSqlQuery。我从表单中获取值并希望将它们插入数据库中。我打开连接并尝试添加,但数据库中没有值,也没有错误。有什么问题吗?

    db      = QSqlDatabase.addDatabase("QMYSQL")

    db.setHostName("localhost")
    db.setDatabaseName("vista")
    db.setUserName("root")
    db.setPassword("secret")

    if (db.open()==False):     
        QMessageBox.critical(None, "Database Error",
            db.lastError().text())   
    query = QSqlQuery()
    query.prepare("INSERT INTO user (fio, sex,polis,document,birtday) "
      "VALUES (:fio, :sex,:polis,:document,:birtday)");
    query.bindValue(":fio", fio);
    query.bindValue(":sex", sex);
    query.bindValue(":polis", polis);
    query.bindValue(":document", document);
    query.bindValue(":birtday", birtday);
    query.exec_();

最佳答案

您必须commit您所做的更改:

if query.exec_():
    db.commit() 
else:
    QMessageBox.warning(None, "Database Error",
        query.lastError().text())   

关于python - QSqlQuery插入数据库不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40652268/

相关文章:

python - 事件 - 仅捕获 Qt.Key_Delete

python - 如何对 PyQt4 QTreeWidget 中的点击使用react

python - __all__ 是 import 的简写吗?

python - 谷歌 python 地理定位器 : SSL CERTIFICATE_VERIFY_FAILED

python - PyQt5 - 将小部件放置在 QTextEdit 的右上角

python - 如何在PyQt4中用动画画一条线

c++ - 自定义 QDockWidget 显示

python - 抓取 PyQt 中的任何异常

java - 如何将.py导入到java中

python - 在虚拟环境中手动安装包并且 pip 要求知道