C语言操作mysql

参考http://andrew913.iteye.com/blog/433280   http://a1liujin.blog.51cto.com/5519498/1686202


一个例子程序

#include"/usr/include/mysql/mysql.h"
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<mysql/mysql.h>
int main(int argc , char *argv[])
{
        MYSQL my_connection;
        MYSQL_RES *result;
        MYSQL_ROW sql_row;
        MYSQL_FIELD *fd;

        int res;
        char sql_insert[200]="select count from workload where id = 1";
        char column[200][200];
        mysql_init(&my_connection);

        if(mysql_real_connect(&my_connection,"localhost","root","password","database",0,NULL,0))
        {
                printf("Connection success\n");


                res=mysql_query(&my_connection,sql_insert);
                if(!res)
                {
                        result=mysql_store_result(&my_connection);//保存查询到的数据到result 
                        if(result)
                        {
                                int i,j;
                                printf("the result number is %lu\n ",(unsigned long)mysql_num_rows(result));
                                for(i=0;fd=mysql_fetch_field(result);i++)//获取列名  
                                {
                                        bzero(column[i],sizeof(column[i]));
                                        strcpy(column[i],fd->name);
                                }
                                j=mysql_num_fields(result);
                                for(i=0;i<j;i++)
                                {
                                        printf("%s\t",column[i]);
                                }
                                while(sql_row=mysql_fetch_row(result))//按行获取结果,每次一行,每行的结果为sql_row[][]一个二维数组
                                {

                                        for(i=0;i<j;i++)
                                        {
                                                printf("%s\t",sql_row[i]);
                                                //for(int a=0; a < sizeof(sql_row[i]); a++)
                                                //{
                                                //       printf("%d\n",sql_row[i][a]);
                                                //}
                                        }
                                        printf("\n");
                                }
                                //sql_row=mysql_fetch_row(result); 
                                //printf("%02x\t",sql_row[1]); 
                        }
                }
                else
                {
                        perror("select");
                }
        }
        else
        {
                perror("connect:error");
        }
        mysql_free_result(result);//释放结果资源  
        mysql_close(&my_connection);//断开连接          
        return 0;
}





//gcc  test.cpp  -o ttt -lmysqlclient -I/usr/include/mysql/ -L/usr/lib64/mysql



其中几个注意点:

1. 编译的时候要需要加上 -lmysqlclient -I/usr/include/mysql/  -L/usr/lib64/mysql

2. mysql_fetch_row这个函数,就是读去查询结果的一行,返回的sql_row是char **类型。




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值