首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql连接qt5.4

Mysql连接qt5.4
EN

Stack Overflow用户
提问于 2015-08-29 20:25:21
回答 1查看 353关注 0票数 0

我想从qt5.4 linux ubuntu os连接到mysql数据库,这是我的代码:

代码语言:javascript
复制
#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个小时谷歌搜索解决方案,我已经尝试了一切,但没有结果。请帮帮忙。提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2015-08-30 08:23:46

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32290347

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档