Linux C 访问数据库操作

数据库:mysql

编程语言:c++

  1.     首先在创建数据表之前,检测硬盘空间是否足够。调用函数check_hd,返回值为0,则表明没有空间;返回值为1,则告警空间过低;返回值为2,则正常,可以进行数据库操作。

    int check_hd()
    {
     char s[10];
     int status =0;
     FILE *fp;
     
        system("du -hm -s /usr/local/mysql/var >du_temp");
     fp=fopen("du_temp","r");
     if (fp == NULL){
      printf("fail to open du_temp !/n");
      return -1;
     }
     fscanf(fp,"%s",s);
     status = atoi(s);
     fclose(fp);
     if ( (status/fl_hd_capacity)*100 > n_hd_rate ){
      printf("hd space used %d MB/n");
      return 0;
     }
     else{
      if(n_hd_rate>50){
       if (((status/fl_hd_capacity)*100 <n_hd_rate )&&((status/fl_hd_capacity)*100 >(2*n_hd_rate-100) ))
       {
        return 1;
       } 
       if((status/fl_hd_capacity)*100 <(2*n_hd_rate-100)){
        printf("hd space used %d MB/n");
       }
      }
     }//end else
     return 2;
    }

  2. 连接数据库

    MYSQL *g_mysql=NULL;
    g_mysql = mysql_init(0);
    mysql_real_connect(g_mysql, mysql_ip, mysql_user_name, mysql_psd, mysql_db_name, 0, NULL, 0))

  3. 创建数据库表

    #define CREATE_IPTV_TABLE "(`Id` int(11) NOT NULL AUTO_INCREMENT,/
                                                                `payload` blob,/
                                                                   PRIMARY KEY (`Id`)/
      )ENGINE=MyISAM AUTO_INCREMENT=8960925 DEFAULT CHARSET=binary ROW_FORMAT=FIXED;"
    char CreateTable[2048];
    sprintf(CreateTable, "%s%s%s", "CREATE TABLE ",/
     mysql_table_name, CREATE_IPTV_TABLE);
    mysql_query(g_mysql, CreateTable);

  4. 添加数据项目

    char InsertTable[4096];
    char Temp[256];
    char Testdata[1024];
    //假设Testdata保存二进制数据,为payload的内容。
    char *end = NULL;
    int count = 0
    //假设count为id号
    sprintf(Temp, "%s%s %s%05d,", /
            "INSERT INTO ", mysql_table_name, /
            "(Id,payload) VALUES(", count);
    end = strcpy(InsertTable, Temp);
    end += strlen(query);
    *end++ = '/'';
    end += mysql_real_escape_string(g_mysql, end, test_data, sizeof(test_data));
    *end++ = '/'';
    *end++ = ')';
    mysql_real_query(g_mysql, InsertTable, (unsigned int) (end - InsertTable))

  5. 删除数据表

    char DropTable[2048];
    sprintf(DropTable, "%s%s%s", "DROP TABLE IF EXISTS ", mysql_table_name);
    mysql_query(g_mysql, DropTable);

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值