Linux下C连接MySQL数据库

Linux下C连接MySQL数据库

自己的例子:

要连接数据库名称是hhh,用户名是tom,连接的数据表是 data_import,其中 data_import数据结构如下(5个属性):

[root@localhost cProject]# cat c_mysql.c
#include <mysql/mysql.h>
#include <stdlib.h>
#include <stdio.h>

void main()
{
        MYSQL *mysql;
        MYSQL_RES *res;
        MYSQL_ROW row;
        char *query = "select * from data_import;";
        int t,r;
        mysql_init(mysql);

        if (!mysql_real_connect(
                                mysql,"localhost","tom","123","hhh",0,NULL ,0))//连接到Mysql服务器
        {
                printf("Error connecting to database:%s\n",mysql_error(mysql));
        }
        else
                printf("Connected to database successfully!\n");
        t = mysql_query(mysql,query);

        if (t)
        {
                printf("Error making query:%s\n",mysql_error(mysql));
        }
        else
        {
                printf("Query successfully!\n");
                res = mysql_use_result(mysql);//获得逐行的结果集检索
                if (res)
                {
                        for(r=0;r<=mysql_field_count(mysql);r++)//mysql_field_count()返回上次执行语句的结果列的数目
                        {
                                row = mysql_fetch_row(res);//从结果集中获得下一行
                                if (row < 0) break;
                                for(t=0;t<mysql_num_fields(res);t++)//mysql_num_fields() 返回结果集中的列数
                                        printf("%s ",row[t]);
                                printf("\n");
                        }
                }
                mysql_free_result(res);//释放结果集使用的内存
        }
        mysql_close(mysql);//关闭服务器连接
}


编译:


执行(部分结果):

[root@localhost cProject]# ./c_mysql
Connected to database successfully!
Query successfully!
  TOM 24 Beijing football
  TOM 24 Beijing football
  LIU 27 heibei football
  JIM 26 shandong football
  HAN 28 beijing football
  MENG 25 Beijing tennis

网上看到的另一个例子:

#include<stdlib.h>   
#include<stdio.h>   
#include<mysql.h>   
   
int main(int argc,char* argv[])   
{   
    MYSQL *conn_ptr;   
   
    conn_ptr = mysql_init(NULL);   
    if(!conn_ptr){   
        fprintf(stderr,"mysql_init failed\n");   
        return EXIT_FAILURE;   
    }      
   
    conn_ptr = mysql_real_connect( conn_ptr, "localhost", "li", "li","mysql", 0, NULL, 0 );   
   
    if(conn_ptr){   
        printf("Connection success\n");   
    }else{   
        printf( "Connection failed\n");   
    }      
   
    mysql_close( conn_ptr );   
   
    return 0;   
}  


编译方法:


gcc $(mysql_config --cflags) xxx.c -o xxx $(mysql_config --libs)


方法二:gcc test.c -o test -L/user/lib/mysql -lmysqlclient                成功!


方法三:gcc test.c -o test $(mysql_config --cflags) $(mysql_config --libs)


或者:gcc test.c -o test $(mysql_config --cflags --libs)                        成功!




自己实验时只有方法2成功了。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值