C++ Mysql与c++;不起作用
我尝试将我的程序与数据库连接(我有import mysql connector,我没有boost),但编译时出现了很多错误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
这是我的密码
#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;'