Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql连接Qt5.4_Qt - Fatal编程技术网

Mysql连接Qt5.4

Mysql连接Qt5.4,qt,Qt,我想从qt 5.4 linux ubuntu操作系统连接到mysql数据库,这是我的代码: #include <QDebug> #include <QtSql/QSql> #include <QtSql/QSqlDatabase> #include <QtSql/QSqlDriver> #include <QtSql/QSqlQuery> #include <QSqlError> Server::Server() { //

我想从qt 5.4 linux ubuntu操作系统连接到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个小时在谷歌上搜索解决方案,我尝试了所有的方法,但都没有结果。 请帮忙。
提前谢谢。

事实上这就是问题所在。我不知道在使用这个之前我应该先创建数据库 db.setDatabaseName clientdb;。 非常感谢

数据库clientdb是否存在?打开后调用QSQLDABASE::lastError