C++ Mysql与c++;不起作用

C++ Mysql与c++;不起作用,c++,mysql,database,C++,Mysql,Database,我尝试将我的程序与数据库连接(我有import mysql connector,我没有boost),但编译时出现了很多错误 这是我的密码 #include <stdlib.h> #include <iostream> #include <mysql_connection.h> #include <cppconn/driver.h> #include <cppconn/exception.h> #include <cppconn

我尝试将我的程序与数据库连接(我有import mysql connector,我没有boost),但编译时出现了很多错误

这是我的密码

#include <stdlib.h>
#include <iostream>


#include <mysql_connection.h>
#include <cppconn/driver.h>
#include <cppconn/exception.h>
#include <cppconn/resultset.h>
#include <cppconn/statement.h>

using namespace std;

class Database{
public :
 Database(){};
~Database(){};
void query(const sql::SQLString& query, const sql::SQLString &bdd);

};

void Database::query(const sql::SQLString &query, const sql::SQLString &bdd){

try {
    sql::Driver *driver { };
      sql::Connection *con{ };
      sql::Statement *stmt{ };
      sql::ResultSet *res{ };

      /* Create a connection */
      driver = get_driver_instance();
      con = driver->connect("tcp://127.0.0.1:3306", "root", "");

      /* Connect to the MySQL database */
      con->setSchema(bdd);

      stmt = con->createStatement();
      res = stmt->executeQuery(query);

      while (res->next()) {
        cout << "\t... MySQL reponses: ";
        /* Access column data by alias or column name */
        cout << res->getString("content") << endl;
        cout << "\t... MySQL says it again: ";
        /* Access column fata by numeric offset, 1 is the first column */
        cout << res->getString(1) << endl;
      }
      delete res;
      delete stmt;
      delete con;

    } catch (sql::SQLException &e) {
      cout << "# ERR: SQLException a " << __FILE__;
      cout << "(" << __FUNCTION__ << ") a la ligne "
         << __LINE__ << endl;
      cout << "# ERR: " << e.what();
      cout << " (MySQL error code: " << e.getErrorCode();
      cout << ", SQLState: " << e.getSQLState() << " )" << endl;
    }

    cout << endl;

}
#包括
#包括
#包括
#包括
#包括
#包括
#包括
使用名称空间std;
类数据库{
公众:
数据库(){};
~Database(){};
void查询(const-sql::SQLString&query,const-sql::SQLString&bdd);
};
void Database::query(常量sql::SQLString&query,常量sql::SQLString&bdd){
试一试{
sql::Driver*Driver{};
sql::Connection*con{};
sql::语句*stmt{};
结果集*res{};
/*创建连接*/
driver=get_driver_instance();
con=驱动程序->连接(“tcp://127.0.0.1:3306“,”根“,”);
/*连接到MySQL数据库*/
con->setSchema(bdd);
stmt=con->createStatement();
res=stmt->executeQuery(查询);
while(res->next()){

cout显然,您的mysqlcpp连接器需要boost,因此请从下载boost,并将boost文件夹的路径添加到您的项目“附加包含目录”列表中。至于重新定义,请在stdint.h中注释掉重新定义的目录。

看起来mysql连接器需要boost,但找不到它,因此您要么安装boost,要么找到一种方法o使用BoostThank禁用mysql_连接器,但是否还有其他东西可以连接到我的数据库(mysql)?没有boost?@Adam Brevet我认为,由于MySQL Connector/C++1.1.0 mysqlcpp Connector二进制发行版是使用boost库编译的,因此您需要boost。您可以获取库@AdamBrevet的更改日志。使用旧版本的MySQL Connector/C++库来避免boost可能不是一个好主意。或者,您也可以只使用我们直接下载MySQL C API(libmysqlclient)(MySQL连接器/C++是C API的包装器)。谢谢你的回答,我会试试你的想法。祝你愉快:)
 C:\Program Files\MySQL\c++\include/cppconn/warning.h:40:0: warning: 
 ignoring #pragma warning  [-Wunknown-pragmas]

  #pragma warning (disable : 4290)
   ^

 In file included from C:\Program Files\MySQL\c++\include/cppconn
 /variant.h:38:0,
             from C:\Program Files\MySQL\c++\include/cppconn
 /connection.h:10,
             from C:\Program Files\MySQL
 \c++\include/mysql_connection.h:30,
             from ..\src\Database.cpp:10:

 C:\Program Files\MySQL\c++\include/cppconn/exception.h:48:0: warning: 
 ignoring #pragma warning  [-Wunknown-pragmas]

  #pragma warning (disable : 4290)


 C:\Program Files\MySQL\c++\include/cppconn/exception.h:52:0: warning: 
 ignoring #pragma warning  [-Wunknown-pragmas]

  #pragma warning(push)


 C:\Program Files\MySQL\c++\include/cppconn/exception.h:53:0: warning: 
 ignoring #pragma warning  [-Wunknown-pragmas]

  #pragma warning(disable: 4275)


 C:\Program Files\MySQL\c++\include/cppconn/exception.h:58:0: warning: 
 ignoring #pragma warning  [-Wunknown-pragmas]

  #pragma warning(pop)

 ^

 In file included from ..\src\Database.cpp:10:0:

 C:\Program Files\MySQL\c++\include/mysql_connection.h:174:2: error: 
 'boost' does not name a type

  boost::shared_ptr< NativeAPI::NativeConnectionWrapper > proxy;

  ^

 C:\Program Files\MySQL\c++\include/mysql_connection.h:178:2: error: 
 'boost' does not name a type

   boost::scoped_ptr< ::sql::mysql::MySQL_Statement > service;

   ^

 C:\Program Files\MySQL\c++\include/mysql_connection.h:180:2: error: 
 'boost' does not name a type

  boost::scoped_ptr< ::sql::mysql::MySQL_ConnectionData > intern; /* 
 pimpl */

  ^

 In file included from C:\Program Files\MySQL\c++\include/cppconn
 /resultset.h:30:0,
             from ..\src\Database.cpp:13:

 C:\Program Files\MySQL\c++\include/cppconn/config.h:95:19: error: 
 conflicting declaration 'typedef long int int32_t'

 typedef __int32   int32_t;
               ^`enter code here`

 c:\mingw\include\stdint.h:31:14: error: 'int32_t' has a previous 
 declaration as 'typedef int int32_t'

 typedef int  int32_t;
          ^

 In file included from C:\Program Files\MySQL\c++\include/cppconn
 /resultset.h:30:0,
             from ..\src\Database.cpp:13:

 C:\Program Files\MySQL\c++\include/cppconn/config.h:99:26: error: 
 conflicting declaration 'typedef long unsigned int uint32_t'

  typedef unsigned __int32 uint32_t;
                      ^


 c:\mingw\include\stdint.h:32:20: error: 'uint32_t' has a previous 
 declaration as 'typedef unsigned int uint32_t'

  typedef unsigned   uint32_t;
                ^

 In file included from C:\Program Files\MySQL\c++\include/cppconn
 /statement.h:30:0,
             from ..\src\Database.cpp:14:

 C:\Program Files\MySQL\c++\include/cppconn/config.h:95:19: error: 
 conflicting declaration 'typedef long int int32_t'

 typedef __int32   int32_t;
               ^


 c:\mingw\include\stdint.h:31:14: error: 'int32_t' has a previous 
 declaration as 'typedef int int32_t'

  typedef int  int32_t;
          ^

 In file included from C:\Program Files\MySQL\c++\include/cppconn
 /statement.h:30:0,
             from ..\src\Database.cpp:14:

 C:\Program Files\MySQL\c++\include/cppconn/config.h:99:26: error: 
 conflicting declaration 'typedef long unsigned int uint32_t'

  typedef unsigned __int32 uint32_t;
                      ^

 c:\mingw\include\stdint.h:32:20: error: 'uint32_t' has a previous 
 declaration as 'typedef unsigned int uint32_t'

 typedef unsigned   uint32_t;'