首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql++简单脚本编译失败

Mysql++简单脚本编译失败
EN

Stack Overflow用户
提问于 2013-12-25 12:53:25
回答 1查看 245关注 0票数 0

我刚刚开始学习c++,目前正在尝试创建一个简单的mysql连接。尽管我有一个web开发人员的背景,但由于没有c++知识和工作原理,设置一切都非常困难。无论如何,我成功地安装了mysql++,并从教程中获得了如下代码:

代码语言:javascript
复制
#include </usr/local/include/mysql++/mysql++.h>
#include </usr/local/include/mysql++/cmdline.h>
#include <iostream>
#include <iomanip>

using namespace std;

int main()
{
    const char* db      = "backseat";
    const char* server  = "localhost";
    const char* user    = "root";
    const char* pass    = "root";

    mysqlpp::Connection conn(true);

    if ( conn.connection(db, server, user, pass) ) 
    {
        mysqlpp::Query query = conn.query('SHOW TABLES');
        if ( mysqlpp::StoreQueryResult res = query.store() )
        {
            cout << "We have: " << endl;
            for (size_t i=0; i < res.num_rows(); i++)
            {
                cout << '\t' << res[i][0] << endl;
            }
        }
        else
        {
            cerr << "Failed to get item list: " << query.error() << endl;
            return 1;
        }

        return 0;
    }
    else
    {
        cerr << "DB connection failed: " << conn.error() << endl;
        return 1;
    }
}

它应该可以工作,但是g++提供了以下输出:

代码语言:javascript
复制
syd@whitebook:~/Desktop$ g++ sql.cpp -o sql -DMYSQLPP_MYSQL_HEADERS_BURIED
sql.cpp:19:37: warning: character constant too long for its type [enabled by default]
sql.cpp: In function ‘int main()’:
sql.cpp:17:12: error: ‘class mysqlpp::Connection’ has no member named ‘connection’
sql.cpp:19:50: error: invalid conversion from ‘int’ to ‘const char*’ [-fpermissive]
/usr/local/include/mysql++/connection.h:251:8: error:   initializing argument 1 of ‘mysqlpp::Query mysqlpp::Connection::query(const char*)’ [-fpermissive]
syd@whitebook:~/Desktop$ 

我在这里做错什么了?你还会建议mysql++还是别的什么吗?

PS:教程-指南从这里拍摄:http://my-problem-solved.blogspot.gr/2010/12/installing-mysql-server-and-mysql-apl.html

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-25 12:58:13

你有一个错误(少了)

代码语言:javascript
复制
mysqlpp::Connecion conn(true);

应该是

代码语言:javascript
复制
mysqlpp::Connection conn(true);
               ^
               ^

纠正此错误时可能会出现其他错误,但这是导致编译错误的原因。如果您非常仔细地阅读编译错误消息,您可以看到它实际上回显错误的类名Connecion

,根据您重写的问题,我相信您想要的函数是

代码语言:javascript
复制
 conn.connect(db, server, user, pass)

当我使用mysql++时,这当然适用于我。您也可以使用

代码语言:javascript
复制
conn.connected();

看看你的连接是否正常;

也是

代码语言:javascript
复制
mysqlpp::Query query = conn.query("SHOW TABLES");

而不是

代码语言:javascript
复制
mysqlpp::Query query = conn.query('SHOW TABLES');

或者您可以使用<<运算符

代码语言:javascript
复制
Query query = conn.query();
query << "SHOW TABLES";
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20772996

复制
相关文章

相似问题

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