我尝试向我的数据库添加一行,但它不起作用。 我的数据库是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 !!!");
}
}
我的消息框“已连接!!!”
这一定是初学者的错误
答案 0 :(得分:0)
而不是构建来自args的QString,尝试准备QSqlQuery并绑定值。 http://qt-project.org/doc/qt-5/qsqlquery.html#approaches-to-binding-values
QString对sql转义一无所知。您使用Sqlite驱动程序,而不是连接到您的主机名qt尝试sqlite文件