【问题标题】:Mysql connection qt 5.4mysql连接qt 5.4
【发布时间】: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


【解决方案1】:

其实这就是问题所在。我不知道在使用它之前我应该​​先创建数据库 db.setDatabaseName( "clientdb" );。 非常感谢!!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多