2016-11-17 64 views
2

我使用PyQt4.QtSql.QSqlQuery。我從表單中獲取值並希望將它們插入到數據庫中。我打開一個連接並嘗試添加,但數據庫中沒有值並且沒有錯誤。有什麼問題?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_(); 

回答

2

必須commit您所做的更改:

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