123 lines
3.0 KiB
C
123 lines
3.0 KiB
C
/* Simple C program that connects to MySQL Database server*/
|
|
#include <mysql/mysql.h>
|
|
//#define _GNU_SOURCE
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include "calculate.h"
|
|
#include "sendmysql.h"
|
|
|
|
void insertData(sensor *s) {
|
|
MYSQL *conn;
|
|
//MYSQL_RES *res;
|
|
//MYSQL_ROW row;
|
|
|
|
char *server = "localhost";
|
|
char *user = "dhtuser";
|
|
char *password = "raspberry"; /* set me first */
|
|
char *database = "dhtstats";
|
|
|
|
conn = mysql_init(NULL);
|
|
|
|
/* Connect to database */
|
|
if (!mysql_real_connect(conn, server,
|
|
user, password, database, 0, NULL, 0)) {
|
|
fprintf(stderr, "%s\n", mysql_error(conn));
|
|
exit(1);
|
|
}
|
|
|
|
/*
|
|
// send SQL query
|
|
if (mysql_query(conn, "show tables")) {
|
|
fprintf(stderr, "%s\n", mysql_error(conn));
|
|
exit(1);
|
|
}
|
|
|
|
res = mysql_use_result(conn);
|
|
|
|
// output table name
|
|
printf("MySQL Tables in mysql database:\n");
|
|
while ((row = mysql_fetch_row(res)) != NULL)
|
|
printf("%s \n", row[0]);
|
|
*/
|
|
|
|
char *pquerystring = NULL;
|
|
|
|
if (-1 == asprintf(&pquerystring,
|
|
"INSERT INTO stats (node_id, pin, humidity, temperature, isoutside, gm3) VALUES (%i, %i, %f, %f, %i, %f)", s->node_id, s->pin, s->humidity, s->temperature, s->isoutside, absoluteHumidity(s))) {
|
|
perror("asprintf() failed");
|
|
} else {
|
|
if (mysql_query(conn, pquerystring)) {
|
|
fprintf(stderr, "%s\n", mysql_error(conn));
|
|
free(pquerystring);
|
|
exit(1);
|
|
}
|
|
}
|
|
|
|
free(pquerystring);
|
|
pquerystring = NULL;
|
|
|
|
/* close connection */
|
|
//mysql_free_result(res);
|
|
mysql_close(conn);
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void insertDataAverages(float temperature, float humidity, float gm3) {
|
|
MYSQL *conn;
|
|
//MYSQL_RES *res;
|
|
//MYSQL_ROW row;
|
|
|
|
char *server = "localhost";
|
|
char *user = "dhtuser";
|
|
char *password = "raspberry"; /* set me first */
|
|
char *database = "dhtstats";
|
|
|
|
conn = mysql_init(NULL);
|
|
|
|
/* Connect to database */
|
|
if (!mysql_real_connect(conn, server,
|
|
user, password, database, 0, NULL, 0)) {
|
|
fprintf(stderr, "%s\n", mysql_error(conn));
|
|
exit(1);
|
|
}
|
|
|
|
/*
|
|
// send SQL query
|
|
if (mysql_query(conn, "show tables")) {
|
|
fprintf(stderr, "%s\n", mysql_error(conn));
|
|
exit(1);
|
|
}
|
|
|
|
res = mysql_use_result(conn);
|
|
|
|
// output table name
|
|
printf("MySQL Tables in mysql database:\n");
|
|
while ((row = mysql_fetch_row(res)) != NULL)
|
|
printf("%s \n", row[0]);
|
|
*/
|
|
|
|
char *pquerystring = NULL;
|
|
//TODO adjust query string
|
|
if (-1 == asprintf(&pquerystring,
|
|
"INSERT INTO stats (node_id, pin, humidity, temperature, isoutside, gm3) VALUES (%i, %i, %f, %f, %i, %f)", s->node_id, s->pin, s->humidity, s->temperature, s->isoutside, absoluteHumidity(s))) {
|
|
perror("asprintf() failed");
|
|
} else {
|
|
if (mysql_query(conn, pquerystring)) {
|
|
fprintf(stderr, "%s\n", mysql_error(conn));
|
|
free(pquerystring);
|
|
exit(1);
|
|
}
|
|
}
|
|
|
|
free(pquerystring);
|
|
pquerystring = NULL;
|
|
|
|
/* close connection */
|
|
//mysql_free_result(res);
|
|
mysql_close(conn);
|
|
}
|