Я пытаюсь вставить значения температуры, считанные с датчика DS18B20, в базу данных mysql, используя sprintf для хранения переменных в строке и mysql_query для записи их в базу данных. В базе данных у меня есть два столбца "temp" и "date", которые являются типами данных int и string.
В моей предыдущей базе данных все работало идеально, но в этом у меня есть некоторые проблемы.
Данные по умолчанию в столбцах NOT NULL
В результате я вижу температуру и дату в терминале, но
SELECT * FROM tmpdate1
дает мне "Пустой набор"
Пожалуйста, помогите мне выяснить, где проблема и решить ее
Вот мой код:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "libfahw.h"
#include <mysql.h>
#include <unistd.h>
#include <time.h>
#define BUF_SIZE (64)
int main(int argc, char ** argv)
{
time_t t;
char times[1024]={};
char timestr[] = {"%s"};
time(&t);
MYSQL *conn;
char query[1024]={};
char query1[1024]={};
char query_str[] = {"INSERT INTO tmpdate1(temp) VALUES (%d)"};
char query_str1[] = {"INSERT INTO tmpdate1(date) VALUES (%s)"};
if ((conn=mysql_init(NULL))==NULL)
{
fprintf(stderr, "Could not init DB\n");
return EXIT_FAILURE;
}
char temperature[BUF_SIZE];
memset(temperature, 0, BUF_SIZE);
if(mysql_real_connect(conn, "localhost", "user12", "34klq*", "defense3", 0, NULL, 0) == NULL)
{
fprintf(stderr, "DB connection error\n");
return EXIT_FAILURE;
}
for (int i = 1; i>0; i++)
{
printf("\n %d", atoi(temperature)/1000);
printf("\n %s", ctime(&t));
sprintf(times, timestr, ctime(&t));
sprintf(query, query_str, atoi(temperature)/1000);
sprintf(query1, query_str1, timestr);
mysql_query(conn, query);
mysql_query(conn, query1);
}
return 0;
}