程序名称:mysql.cpp
编译命令:g++ mysql.cpp -o mysql -I/usr/local/mysql/include/mysql -lmysqlclient
程序内容:
#include #include "mysql.h"
using namespace std;
int main()
{
int i = 1;
int field_num;
char id[10] = {0};
char name[16] = {0};
MYSQL mysql;
MYSQL_ROW row;
MYSQL_RES *result;
MYSQL_FIELD *fields;
//声明函数
bool getfieldvalue(char * value,int field_num,MYSQL_FIELD * fields,MYSQL_ROW &row,char *fieldname);
mysql_init(&mysql);
cout << "connect mysql database." << endl;
if (mysql_real_connect(&mysql,"localhost","root","21vianet","boss",3306,0,0))
{
cout << "connect ok." << endl;
}
else
{
cout << "connect fail." << endl;
return 0;
}
mysql_query(&mysql,"SET NAMES gb2312");
mysql_query(&mysql,"select * from role");
result = mysql_store_result(&mysql);
fields = mysql_fetch_fields(result);
field_num = mysql_num_fields(result);
cout << "num:" << field_num << endl;
while (row = mysql_fetch_row(result))
{
getfieldvalue(id,field_num,fields,row,"id");
getfieldvalue(name,field_num,fields,row,"name");
cout << id << "," << name << endl;
}
cout << "OK!" << endl;
mysql_close(&mysql);
}
bool getfieldvalue(char * value,int field_num,MYSQL_FIELD * fields,MYSQL_ROW &row,char *fieldname)
{
int i;
for (i = 0;i < field_num;i++)
{
if (strcmp(fields[i].name,fieldname) == 0)
{
if (row[i] != NULL)
{
strcpy(value,row[i]);
}
else
{
strcpy(value,"");
}
return true;
}
}
}