`
shaojiashuai123456
  • 浏览: 257156 次
  • 性别: Icon_minigender_1
  • 来自: 吉林
社区版块
存档分类
最新评论

c 连接 mysql 数据库

阅读更多

 

1. MYSQL *mysql_init(MYSQL *mysql)

      初始化一个类型为MYSQL的数据结构,为执行mysql_real_connect()做准备。参数mysql为指向该结构的指针,如果mysql为NULL,则新建并初始化一个MYSQL的数据结构。新建的结构将在mysql_close()中释放。

      若成功,返回初始化的MYSQL数据结构的指针,否则返回NULL。 

 

 

 

2. MYSQL *mysql_real_connect(MYSQL *mysql, const char *host,const char *user, const char *passwd, const char *db,unsigned int port, const char *unix_socket, unsigned int client_flag)

        参数mysql是mysql_init()的返回值;

        参数host是运行MySQL数据库引擎的机器的TCP/IP主机名,如为NULL则默认为“localhost”;

        参数user和passwd是MySQL数据库的合法用户和口令;

        参数db是连接的数据库名;

        参数port,unix_socket和client_flag一般取默认值。

 

 

3. int mysql_query(MYSQL *mysql, const char *query)

        执行query字符串中的SQL语句,query必须以0结尾。如果成功,返回0。

 

 

4. MYSQL_RES *mysql_store_result(MYSQL *mysql)

         返回SELECT,SHOW,DESCRIBE, EXPLAIN等语句执行的结果。函数新建一个MYSQL_RES的数据结构,把结果存储在该结构中。如果查询没有匹配的结果,则返回空数据集。处理完结果集后,必须调用mysql_free_result()。

         如果出错,返回NULL,否则返回MYSQL_RES结构的指针。

 

 

 

5. MYSQL_ROW mysql_fetch_row(MYSQL_RES *result)

         取回结果集中的下一条记录,如果没有记录或出错,返回NULL。

         一条记录中的字段数可以用mysql_num_fields(result)获得,各字段的值可以用row[0] 到 row[mysql_num_fields(result)-1]的数组来访问。

 

 

查询实例

int  mysql_connect_init_ip()		
{

	strcpy(query,"select * from ip_list");
	ip_list_init(&black_list);	
    ip_list_init(&white_list);				
    mysql_init(&mysql);  
    if(mysql_real_connect(&mysql,HOSTNAME,USERNAME,PASSWORD,DATABASE,MYSQL_PORT,NULL,0)) 
    {  									
		if(mysql_real_query(&mysql,query,strlen(query))==0) 
        {
			result = mysql_store_result(&mysql);
			while((row = mysql_fetch_row(result))!=NULL)
	        {
                u_int32_t ip = inet_addr(row[2]);
                int type=atoi(row[3]);
			    if(type)
                {
                    ip_list_add(&white_list,ip);
                }
                else ip_list_add(&black_list,ip);
            }
			mysql_free_result(result);
		}
		else 
        {
			fprintf(stderr,"last_flow_rows_m query_sel_id failed:%d %s\n",mysql_errno(&mysql),mysql_error(&mysql));
			return 0;
		}
	}
	mysql_close(&mysql);
	return 1;
}

 

0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics