我想从qt5.4 linux ubuntu os连接到mysql数据库,这是我的代码:
#include <QDebug>
#include <QtSql/QSql>
#include <QtSql/QSqlDatabase>
#include <QtSql/QSqlDriver>
#include <QtSql/QSqlQuery>
#include <QSqlError>
Server::Server()
{
//Data base
QSqlDatabase db = QSqlDatabase::addDatabase( "QMYSQL" );
qDebug() <<db.lastError().text();
db.setHostName( "localhost" );
db.setDatabaseName( "clientdb" );
db.setUserName( "root" );
db.setPassword( "" );
if(!db.open())
qDebug() << "No database connection!!" ;
else
qDebug() << "Database connected" ;
/* QSqlQuery qry(db);
qry.prepare( "CREATE TABLE IF NOT EXISTS clients (id INTEGER UNIQUE PRIMARY KEY, firstname VARCHAR(30))" );
if( !qry.exec() )
qDebug() << qry.lastError();
else
qDebug() << "Table created" ;
*/
// qry.prepare("INSERT INTO clients (id) VALUES (1)" );
db.close();
}问题是db.open()返回false,所以问题源是QSqlDatabase db = QSqlDatabase::addDatabase( "QMYSQL“)。我之前有一个错误,说不能加载MYSQL驱动程序,但是我解决了这个问题。我试图将MYSQL驱动程序更改为SQLITE驱动程序,但奇怪的是,它成功了!!我不知道MYSQL驱动程序有什么问题!!
拜托,我真的需要你的帮助,我花了9个小时谷歌搜索解决方案,我已经尝试了一切,但没有结果。请帮帮忙。提前谢谢。
发布于 2015-08-30 08:23:46
其实这就是问题所在。我不知道在使用这个db.setDatabaseName( "clientdb" );之前我应该先创建数据库。非常感谢!!
https://stackoverflow.com/questions/32290347
复制相似问题