3,881
社区成员
发帖
与我相关
我的任务
分享
#include <mysql/mysql.h>
#include <stdio.h>
#include <string.h>
#include <time.h>
#include <stdlib.h>
long GetTick(char *str_time)
{
struct tm stm;
int iY, iM, iD, iH, iMin, iS;
memset(&stm,0,sizeof(stm));
iY = atoi(str_time);
iM = atoi(str_time+5);
iD = atoi(str_time+8);
iH = atoi(str_time+11);
iMin = atoi(str_time+14);
iS = atoi(str_time+17);
stm.tm_year=iY-1900;
stm.tm_mon=iM-1;
stm.tm_mday=iD;
stm.tm_hour=iH;
stm.tm_min=iMin;
stm.tm_sec=iS;
/*printf("%d-%0d-%0d %0d:%0d:%0d\n", iY, iM, iD, iH, iMin, iS);*/
return mktime(&stm);
}
char* itstr(time_t value,char*a)
{
struct tm t;
time_t result;
t.tm_year = 70;
t.tm_mon = 1;
t.tm_mday = 0;
t.tm_hour = -8;
t.tm_min = 0;
t.tm_sec = 0;
result = mktime(&t);
result += value;
memcpy(&t, localtime(&result), sizeof(struct tm));
sprintf(a,"%d-%02d-%02d %02d:%02d:%02d", t.tm_year + 1900, t.tm_mon, t.tm_mday, t.tm_hour, t.tm_min, t.tm_sec);
return a;
}
int main()
{
MYSQL mysql;
MYSQL_RES *res;
MYSQL_ROW row;
char query[512] = {0};
int flag, t;
char sql[512] = {0};
char *sql1;
mysql_init(&mysql);
if(!mysql_real_connect(&mysql, "localhost", "root", "yang5716", "test", 3306, NULL, 0)) {
printf("Failed to connect to Mysql!\n");fprintf(stderr,"Failedtoconnecttodatabase:Error:%s\n",mysql_error(&mysql)); return 0;
}else {
printf("Connected to Mysql successfully!\n");
}
sprintf(query,"SELECT time,speed,distance from test4;");
/*查询,成功则返回0*/
flag = mysql_real_query(&mysql, query, (unsigned int)strlen(query));
if(flag) {
printf("Query failed!\n");
return 0;
}else {
printf("[%s] made...\n", query);
}
long savetime,savespeed,savedistance=0;
/*mysql_store_result讲全部的查询结果读取到客户端*/
res = mysql_store_result(&mysql);
/*mysql_fetch_row检索结果集的下一行*/
while(row = mysql_fetch_row(res)) {
if(savetime&&savespeed&&savedistance)
{
while(GetTick(row[0])-savetime>5)
{
char a[256]={0};
time_t time1=savetime;
time_t time2=GetTick(row[0]);
int speed1=savespeed,speed2=atoi(row[1]);
int distance=savedistance;
int fspeed,fdistance=0;
time_t ftime;
ftime = time1 + 5;
fspeed = (speed1+speed2)/2;
fdistance =5 * fspeed+distance;
printf("time1 %d time2 %d speed1 %d\n",time1,GetTick(row[0]),speed1);
//printf("%d %d %d\n",ftime,fspeed,fdistance);
printf("%s\n",itstr(ftime,a));
sprintf(sql,"insert into test4(time,speed,distance) values('%s',%d,%d);",itstr(ftime,a),fspeed,fdistance);
printf("%s\n",sql);
flag = mysql_real_query(&mysql, sql, (unsigned int)strlen(sql));
savetime=GetTick(row[0]);savespeed=atoi(row[1]);savedistance=atoi(row[2]);
}
}
else
savetime=GetTick(row[0]);savespeed=atoi(row[1]);savedistance=atoi(row[2]);
}
mysql_close(&mysql);
return 0;
}