使用C访问mysql简单实例
//opermysql.h
#ifndef __OPERMYSQL_H
#define __OPERMYSQL_H
#include "mysql.h"
#define RTN_SUCCEED 0
#define RTN_UNSUCCEED -1
#define CSQLLEN 60*128
typedef struct tag_SqlData
{
char name[64];
char passw[32];
char ip[32];
int port;
char databases[32];
unsigned short soap_port;
int dbg_level;
int daemon;
}COSQLDATA,*PCOSQLDATA;
class OperMysql
{
public:
perMysql();
void mysql_ominit();
void mysql_uninit();
int mysql_connect(PCOSQLDATA co_data);
int mysql_omclose();
int mysql_add(char *sql);
private:
MYSQL gmasql;
};
#endif
//opermysql.cpp
#include "opermysql.h"
#include<stdio.h>
#include<stdlib.h>
#Include<string.h>
OperMysql::OperMysql()
{
}
void OperMysql::mysql_ominit()
{
if(NULL==mysql_init(&gmysql))
{
return;
}
}
void OperMysql::mysql_uninit()
{
}
int OperMysql::mysql_connect(PCOSQLDATA sql_data)
{
if(mysql_real_connect(&gmysql,sql_data->ip,sql_data->name,sql_data->passw,sql_data->databases,0,NULL,0))
{
return RTN_SUCCEED;
}
else
return RTN_UNSUCCEED;
}
int OperMysql::mysql_omclose()
{
mysql_close(&gmysql);
return RTN_SUCCEED;
}
int OperMysql::mysql_add(char *sql)
{
int ret;
ret=mysql_query(&gmysql,sql);
if(!ret)
{
printf("mysql execution success!\n");
return RTN_SUCCEED;
}
else
{
printf("mysql query execution error!\n");
return RTN_UNSUCCEED;
}
}
/* test using
int main()
{
COSQLDATA co_data;
memset(&co_data,0x00,sizeof(co_data));
strcpy(co_data.name,"root");
strcpy(co_data.passw,"mysql51");
strcpy(co_data.ip,"10.2.2.61");
strcpy(co_data.databases,"dnrc");
co_data.port=3306;
OperMysql opm;
opm.mysql_ominit();
opm.mysql_connect(&co_data);
char sql[]="insert into testtable(id,name) values('123','test')";
opm.mysql_add(sql);
opm.mysql_omclose();
}
*/
$g++ oper_mysql.cpp -I$mysql/include/mysql -L $mysql/lib/libmysqlclient.a