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

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);
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值