zoukankan      html  css  js  c++  java
  • [mysql]Linux下C语言连接mysql

    安装

    sudo apt-get install mysql-server
    
    //单独装了mysql以后已经可以使用了,但还不能用c连接,编译的时候会提示找不到mysql.h,还要安装libmysqlclient-dev
    
    apt-get install libmysqlclient-dev

     准备:

    初始化库函数,初始化mysql

    char* server_groups[]={"embedded","server","this_program_server",(char*)NULL};
        MYSQL *pmysql=new MYSQL;
        if(mysql_library_init(0,NULL,server_groups)){//初始化MYSQL数据库
            printf("无法chushihuahanshu库/n");
            delete pmysql;
            pmysql=NULL;
        }
        mysql_init(pmysql);//初始化MYSQL标识符,用于连接
        if(!mysql_real_connect(pmysql,"localhost","root","bingxueshen","test1",0,NULL,0)){
              fprintf(stderr,"无法连接到数据库,错误原因是:%s/n",mysql_error(pmysql));
              delete pmysql;
            pmysql=NULL;
        }

    mysql_library_init():设置mysql数据库类型

    mysql_init():初始化mysql资源

    mysql_real_connect() :传入数据库名、账号密码等信息

    执行sql语句,返回0表示成功

    mysql_quary():执行参数中字符串SQL语句,以为结束标志

    mysql_real_quary():功能同上,参数多了一个语句长度,以语句长度为结束标志,防止查询语句中有二进制数据0

    获取结果

    MYSQL_RES *res;
    MYSQL_ROW row;
    res=mysql_store_result(&mysql);//返回查询的全部结果集
    while(row=mysql_fetch_row(res)){//mysql_fetch_row取结果集的下一行
         for(t=0;t<mysql_num_fields(res);t++){//结果集的列的数量
          printf("%s/t",row[t]);
         }
         printf("/n");
    
    }
    mysql_free_result(res);//操作完毕,查询结果集
    mysql_store_result():获取查询结果,存放于MYSQL_RES类型中
    mysql_fetch_row():一行一行地获取结果,直到读取完所有查询结果。每次返回一个MYSQL_ROW类型(其实就是一个字符串数组)
    mysql_num_fields():返回查询结果包含的列数
    mysql_free_result():清空结果集,使变量能继续存储以后的结果

    关闭函数库与连接
    mysql_close(&mysql);//关闭数据库连接
    
    mysql_library_end();//关闭MySQL库
  • 相关阅读:
    校园网认证原理
    使VS Code自带的Markdown支持mathjax
    图像处理实用资源
    第一周的python作业
    Python中关于turtle库的笔记
    软件测试入门篇
    如何设计一条好的测试用例打卡第二天
    根据用户登录浅谈软件测试打卡第一天
    Andorid源码系列:View的onTouchEvent()与performClick(),performLongClick()调用时机解析
    论Activity及启动模式,Fragment,Service的使用以及生命周期
  • 原文地址:https://www.cnblogs.com/iyjhabc/p/3287580.html
Copyright © 2011-2022 走看看