QSqlQuery不起作用

时间:2014-07-14 15:34:52

标签: database qt

我尝试向我的数据库添加一行,但它不起作用。 我的数据库是alwaysdata的主机,我使用Qt Creator开发我的程序(没有打印错误)和MySql查看数据库

通过我输入的MySql查询浏览器:

INSERT INTO `mmr` VALUES (NULL,'musictest','albumtest','timetest','datetest');

它有效 但在我的程序中代码不起作用:

void MainWindow::b_clicked(){
    QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
    db.setHostName("mysql1.alwaysdata.com");
    db.setDatabaseName("mymusicrecognition_mmr");
    db.setUserName("xxx");
    db.setPassword("yyyy");
    if(!db.open())
        {
            QMessageBox::information(this,"Message","Not connected...");
    }
    else{

        QSqlQuery query;
        query.exec(QString("INSERT INTO `mmr` VALUES (NULL,'%1','%2','%3','%4')")
        .arg("musictest").arg("albumtest").arg("timetest").arg("datetest"));
        QMessageBox::information(this,"Message","Connected !!!");
    }
}

我的消息框“已连接!!!”

这一定是初学者的错误

1 个答案:

答案 0 :(得分:0)

而不是构建来自args的QString,尝试准备QSqlQuery并绑定值。 http://qt-project.org/doc/qt-5/qsqlquery.html#approaches-to-binding-values

QString对sql转义一无所知。您使用Sqlite驱动程序,而不是连接到您的主机名qt尝试sqlite文件