2013-12-25 4 views
0

Я начал изучать C++ совсем недавно, и сейчас я пытаюсь создать простое соединение mysql db. Хотя у меня есть настройка веб-разработчиков, все было довольно сложно из-за отсутствия знаний на C++ и того, как все работает. Во всяком случае, мне удалось установить MySQL ++, и я получил кусок кода из учебника, который выглядит следующим образом:Ошибка компиляции прошивки Mysql ++

#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; 
    } 
} 

, который должен работать, но г ++ дает мне следующий вывод:

[email protected]:~/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] 
[email protected]:~/Desktop$ 

Что я Я здесь делаю неправильно? Также вы бы предложили mysql ++ или что-то еще?

PS: учебник - руководство взято отсюда: http://my-problem-solved.blogspot.gr/2010/12/installing-mysql-server-and-mysql-apl.html

ответ

1

у вас есть опечатка (т отсутствующий)

mysqlpp::Connecion conn(true); 

должен быть

mysqlpp::Connection conn(true); 
      ^
      ^

Вы можете иметь другие ошибки при коррекции это, но это является причиной ваших ошибок компиляции. Если вы прочитали сообщение об ошибке компиляции очень, вы можете увидеть, что на самом деле это эхо возвращает ошибочное имя класса Connecion.

В свете вашего переписывания вопрос, я считаю, что функция, которую вы хотите, называется

conn.connect(db, server, user, pass) 

Это, конечно, работает для меня, когда я использую MySQL ++. Вы также можете использовать

conn.connected(); 

, чтобы проверить, подходит ли ваше соединение;

Также

mysqlpp::Query query = conn.query("SHOW TABLES"); 

вместо

mysqlpp::Query query = conn.query('SHOW TABLES'); 

Или вы можете использовать оператор <<

Query query = conn.query(); 
query << "SHOW TABLES"; 
+0

Я извиняюсь за опечатку я обновил свой вопрос. Опечатка не была. – Syd

Смежные вопросы