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库
  • 相关阅读:
    扁平化设计五大原则
    扁平化
    如何调试PHP程序
    Java中的协变与逆变
    Java的equals方法实现及其细节
    Java的clone方法效率问题
    Mac的Terminal中无法使用mvim解决方案
    SC.Lab3对于Factory的构建过程(from HIT)
    关于Lab3中对于正则表达式的应用
    关于Java构造类与对象的思考
  • 原文地址:https://www.cnblogs.com/iyjhabc/p/3287580.html
Copyright © 2011-2022 走看看