您的位置:首页 > 运维架构 > Linux

Linux下C++访问MySQL

2016-01-17 16:54 507 查看
testmysql.cpp

#include
#include
#include

using namespace std;

int main()
{
MYSQL mysql;
MYSQL_RES *result = NULL;
MYSQL_FIELD *field = NULL;

//以下参数根据实际环境替换
char user[] = "XXXXX";
char password[] = "XXXX";
char server[] = "localhost";
char database[] = "mydb";
unsigned int port=3306;

mysql_init(&mysql);
if ( mysql_real_connect(&mysql, server, user, password,
database, port, NULL, 0) == NULL )
{

cout<< "connect to database failed!"<<endl;
cout<< "error info:
"<<mysql_error(&mysql)<<endl;

mysql_close(&mysql);
return -1;
}
cout<< "connect to database
successfully!"<<endl;
if ( mysql_set_character_set( &mysql, "utf8" ) )

cerr<< mysql_error(&mysql
)<<endl;

//数据库mydb中有STUDENT表,具体环境中需要替换
string sql = "select * from STUDENT";
mysql_query(&mysql, sql.c_str());
result = mysql_store_result(&mysql);
int rowcount = mysql_num_rows(result);
cout << rowcount << endl;
int fieldcount = mysql_num_fields(result);
cout << fieldcount << endl;
for(int i = 0; i < fieldcount; i++)
{
field = mysql_fetch_field_direct(result,i);
cout << field->name << "\t\t";
}
cout << endl;
MYSQL_ROW row = NULL;
row = mysql_fetch_row(result);
while(NULL != row)
{
for(int i=0; i
{
cout << row[i] << "\t\t";
}
cout << endl;
row = mysql_fetch_row(result);
}
mysql_close(&mysql);

return 0;
}

编译程序:

g++ testmysql.cpp
-o testmysql `mysql_config
--cflags --libs`

or
g++ testmysql.cpp -o testmysql -I/opt/mysql/include
-L/opt/mysql/lib -lmysqlclient
(/opt/mysql为mysql的安装目录,实际环境中需要替换)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: