使用浮点变量时,数据库中不会保存任何值。
char *sql = "INSERT INTO Readings (C02, TEMPERATURE, HUMIDITY) VALUES ($co2, $temp, $hum);";
47|||
48|||
当使用值时,浮点值将被输入到数据库中。
char *sql = "INSERT INTO Readings (C02, TEMPERATURE, HUMIDITY) VALUES (833.42, 23.11, 40.25);";
45|833.42|23.11|40.25
46|833.42|23.11|40.25
int addRec(float co2, float temp, float hum){
printf("insert");
sqlite3 *db;
char *err_msg = 0;
int rc = sqlite3_open("Data.db", &db);
if (rc != SQLITE_OK) {
fprintf(stderr, "Cannot open database: %s\n", sqlite3_errmsg(db));
sqlite3_close(db);
return 1;
}
sqlite3_stmt* stmt;
const char* insertQuery = "INSERT INTO Readings (TIMESTAMP, CO2_PPM, TEMPERATURE, HUMIDITY) VALUES (?, ?, ?, ?)";
rc = sqlite3_prepare_v2(db, insertQuery, -1, &stmt, NULL);
if (rc != SQLITE_OK) {
fprintf(stderr, "SQL error: %s\n", err_msg);
sqlite3_free(err_msg);
sqlite3_close(db);
return 1;
}
const char* timeStamp = time_stamp();
sqlite3_bind_text(stmt, 1, timeStamp,-1,SQLITE_STATIC);
sqlite3_bind_double(stmt, 2, co2);
sqlite3_bind_double(stmt, 3, temp);
sqlite3_bind_double(stmt, 4, hum);
while ((rc = sqlite3_step(stmt)) == SQLITE_ROW) {
}
if (rc != SQLITE_DONE) {
fprintf(stderr, "SQL error: %s\n", err_msg);
sqlite3_free(err_msg);
sqlite3_close(db);
return 1;
}
sqlite3_reset(stmt);
sqlite3_finalize(stmt);
sqlite3_close(db);
return 0;
}