2016-11-17 2 views
2

J'utilise PyQt4.QtSql.QSqlQuery. Je reçois des valeurs d'un formulaire et je veux les insérer dans la base de données. J'ouvre une connexion et essaie d'ajouter, mais il n'y a aucune valeur dans la base de données et aucune erreur. Quel est le problème?QSqlQuery Insérer dans la base de données ne fonctionne pas

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_(); 

Répondre

2

Vous devez commit les modifications apportées:

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