【发布时间】:2015-08-29 20:25:21
【问题描述】:
我想从 qt 5.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 个小时在谷歌上搜索寻找解决方案,我已经尝试了所有方法,但没有结果。 请帮忙。 提前致谢。
【问题讨论】:
-
你的数据库
clientdb存在吗? -
开通后拨打
QSqlDatabase::lastError
标签: qt