工程项目中经常要与mysql交互,留下自己写的接口,方便下次使用,
编译命令:
gcc -o XXX XXX.c -I/usr/include/mysql -rdynamic -L/usr/lib64/mysql -lmysqlclient
头文件:
conMysql.h
#ifndef MYSQL_H
#define MYSQL_H
#include "/usr/include/mysql/mysql.h"
/*
* 定义连接信息
*/
#define MYSQL_CONNECT_IP "XXX.XXX.XXX.XXX"
#define MYSQL_USER_NAME "root"
#define MYSQL_USER_PWD "passwd"
#define MYSQL_DATABASE "databaseName"
extern MYSQL *conn_global;
int mysqlInit(void);
void mysqlClose(void);
MYSQL_RES* mysqlQuery(char *,char *);
#endif /*MYSQL_H*/
连接文件:
mysql.c#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "conMysql.h"
MYSQL *conn_global;
int mysqlInit()
{
if( (conn_global=mysql_init(NULL))==NULL )
{
printf("MYSQL connection initialize error!\n");
exit(0);
}
if(!mysql_real_connect(conn_global,MYSQL_CONNECT_IP,MYSQL_USER_NAME,MYSQL_USER_PWD,MYSQL_DATABASE,0,NULL,0))
{
printf("Failed to connect to MYSQL!\n");
exit(0);
}
if(mysql_set_character_set(conn_global,"utf8"))
{
printf("encoding the SQL result error!\n");
exit(0);
}
//printf("MYSQL connect success!\n");
}
/*
* function for MYSQL do insert/update/select/delete
*
* return MYSQL_RES result
*/
MYSQL_RES* mysqlQuery(char *query,char *errorNotice)
{
MYSQL_RES *res=NULL;
MYSQL_ROW row;
int flag=0;
flag=mysql_real_query(conn_global,query,(unsigned int)strlen(query));
if(flag)//failure
{
printf("%s SQL query failed!........ \n",errorNotice);
return 0;
}
else
{
res=mysql_store_result(conn_global);
return res;
}
}
void mysqlClose()
{
mysql_close(conn_global);
}