c语言mysql连接

工程项目中经常要与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);	
}


你可能感兴趣的:(mysql,c语言mysql连接)