c程序调用 mysql库函数 操作数据库

原创 2015年07月09日 11:38:26

1 连接上服务器:

/*
mytable 数据库中的表格名称
name 根据 name 进行选择
*/
#define SELECT_QUERY "select * from mytable where name like '%s'"   

MYSQL mysql, *sock; //定义数据连接句柄
/*******************************************
函数名:    service_sql_init
功能:     服务器数据库初始化
*********************************************/

int service_sql_init(void)
{
    mysql_init(&mysql);
    /* 连接上数据库 */
//  if(!(sock = mysql_real_connect(&mysql, "localhost", "root", "my-name-is?lza1205", "rt5350_user_list", 0, NULL, 0))){
    if(!(sock = mysql_real_connect(&mysql, "localhost", "root", "123456", "rt5350_user_list", 0, NULL, 0))){
        fprintf(stderr, "Couldn't connect to engine!\n%s\n\n", mysql_error(&mysql));
        perror("");
        exit(1);
    }
    return 0;
}

/*******************************************
函数名:    service_sql_select
功能:     根据name 从服务器中找出passwd
*********************************************/

int service_sql_select(char *name, char *passwd)
{
    MYSQL_RES   *res;   //查询结果集
//  MYSQL_FIELD *fd;    //包含字段信息
    MYSQL_ROW   row;    //存放一行查询结果的字符串数组
    char qbuf[160];     //存放查询 sql 语句字符串

    sprintf(qbuf, SELECT_QUERY, name);
    printf("qbuf is %s\n", qbuf);
    /* 查询数据库 */
    if(mysql_query(sock, qbuf)){
        fprintf(stderr, "Query failed (%s)\n", mysql_error(sock));
        return -1;
    }

    if(!(res = mysql_store_result(sock))){
        fprintf(stderr, "Couldn't get result from %s\n", mysql_error(sock));
        return -1;
    }

    printf("number of fields returned : %d\n", mysql_num_fields(res));
    while((row = mysql_fetch_row(res))){
        printf("Ther name #%s 's passwd is: %s\n", (((row[0]==NULL)&&(!strlen(row[0]))) ? "NULL" : row[0]),
                                                    (((row[1]==NULL)&&(!strlen(row[1]))) ? "NULL" : row[1])); 
        puts( "query ok !\n" ) ; 
        strcpy(passwd, (((row[1]==NULL)&&(!strlen(row[1]))) ? "NULL" : row[1]));
        mysql_free_result(res);
        return 0;
    }

    mysql_free_result(res);
    return -1;
//    mysql_close(sock);
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

文件操作:系统调用和C库函数的区别

C标准库提供的读写文件的fread和fwrite函数: FILE *fopen(char *filename, *type); size_t fread( void *buffer, size_t...

内核中的基本C库函数 位操作

位操作 set_bit 在位图中原子地设置某一位 void set_bit (int nr, volatile void * addr) nr为要设置的位,addr为位图的起始地址 ...

ANSI C提供的文件操作标准库函数

文件的打开操作 fopen 打开一个文件       文件的关闭操作 fclose关闭一个文件       文件的读写操作 fgetc从文件中读取一个字符            ...

c库函数 strring.h字符串操作(部分常用实现)

作为C程序员来说 1.size_t strlen( char const * string);

Unix/Linux环境C编程入门教程(41) C语言库函数的文件操作详解

上一篇博客我们讲解了如何使用Linux提供的文件操作函数,本文主要讲解使用C语言提供的文件操作的库函数。函数介绍  fopen(打开文件) 相关函数 ope...

C程序中对时间的处理——time库函数详解

包含文件: 一、在C语言中有time_t, tm, timeval等几种类型的时间 1、time_t time_t实际上是长整数类型,定义为:typedef long time_t; /*...

C程序中对时间的处理——time库函数详解以及系统时间结构体类型

C程序中对时间的处理——time库函数详解以及系统时间结构体类型
  • gyley2
  • gyley2
  • 2014-12-10 14:14
  • 2241

turbo C 2.0 库函数查询程序

  • 2008-10-24 23:31
  • 268KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)