C在ubuntu下连接和插入mysql数据库

7 篇文章 0 订阅

#include <stdio.h>
#include <mysql/mysql.h>
#include <time.h>

#define DB_HOST "127.0.0.1" // Database Host: 默认为 127.0.0.1 即localhost
#define DB_USER "root" // 用户名,要确保对数据库有权限
#define DB_PASS "root" // 密码
#define DB_DB "hisdb" // 数据库名,如果没有要先新建。

int main(){
    MYSQL mysql;
    char sql[512];
    char Nowtm[512]="2019-10-10";
    char real_data[512]="2019";
    time_t t;
    struct tm * lt;
   
    
    mysql_init(&mysql);
    MYSQL *conn = mysql_real_connect(&mysql, DB_HOST, DB_USER, DB_PASS, DB_DB, 0, 0, 0); // 对确定的数据库建立一个连接,如果失败返回一个空指针
    while(1)
    {
       usleep(2000*1000);//2000ms
       time (&t);//获取Unix时间戳。
       lt = localtime (&t);//转为时间结构。
       printf ( "%d-%d-%d %d:%d:%d\n",lt->tm_year+1900, lt->tm_mon, lt->tm_mday, lt->tm_hour, lt->tm_min, lt->tm_sec);//输出结果
      if(conn == NULL){
        printf("Connection Failed");
        return 1;
      }
      else
      {
       if (lt->tm_min%3==0)    
       {
           char * sqldel="delete from realsave_hp where datediff(curdate(),time)>=2";//删除3天前的数据
           int res=mysql_query(conn,sqldel);
           printf("delete data!");

       }   
       sprintf(Nowtm,"%d-%d-%d %d:%d:%d",lt->tm_year+1900, lt->tm_mon, lt->tm_mday, lt->tm_hour, lt->tm_min, lt->tm_sec);
       sprintf(real_data,"%.3f,%.3f,%.3f,%.3f",1.23,1.34,1.45,1.78);
       char * p0="2019-09-18 10:10:10";
       p0=Nowtm;
       
      //sprintf(sql,"insert into //he%s(data_1,data_2,data_3,data_4,data_5,data_6,data_7,judge,longitude,latitude)values(%s,%s,%s,%s,%s,%s,%s,0,%s,%s)",p[1],p[2],p[3],p[4],p[5],p[6],p[7],p[8],p[9],p[10]);
       sprintf(sql,"insert into realsave_hp values(NULL,0,%d,\"%s\",\"%s\",1,1)",12,p0,real_data);    
       printf(sql);
       int res=mysql_query(conn,sql);
       printf("%s\n",sql);
      }
     printf("Connection Successed");
    }
    return 0;
}


//ubuntu下编译命令  gcc C_mysql.c -o C_mysql -lmysqlclient

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值