MYSQL connector
Pravidla fóra
Tohle subfórum je určeno pro konzultaci ucelených nápadů, popřípadě řešení komplexnějších projektů, které opravdu není možné rozdělit na menší části.
Většinu problémů jde rozdělit na menší a ptát se na ně v konkrétních subfórech.
Tohle subfórum je určeno pro konzultaci ucelených nápadů, popřípadě řešení komplexnějších projektů, které opravdu není možné rozdělit na menší části.
Většinu problémů jde rozdělit na menší a ptát se na ně v konkrétních subfórech.
MYSQL connector
Zdravím. Potřebuji pomoc s pochopením kódu. Potřebuji abych mohl použít knihovnu ale tak, že v jednom insertu odešlu více hodnot, tj 10 i více do různých polí databáze. Pole jsou pojmenované vím jak se jmenují. Hodnoty jsou proměnné vyčtené z různých senzorů. Tj, nemohu je do insertu zapsat jako faktickou stále stejnou hodnotu. Tady jsem našel nějaký návod ale moc z něho moudrý nejsem. Máte to někdo řešené? Poradíte jak na to? Návodů na to jak dostat data z jednoho senzoru je na netu hafo ale víc naráz v jednom insertu ne. Děkuji moc.
Neexistují hloupé otázky, existují jen hloupé odpovědi.
Chci aby "chytrá" elektronika dělala "chytré" a užitečné věci. Tím není aby nahrazovala něco co se dá hotové koupit za pár korun.
Chci aby "chytrá" elektronika dělala "chytré" a užitečné věci. Tím není aby nahrazovala něco co se dá hotové koupit za pár korun.
Re: MYSQL connector
Syntaxe pro násobný insert je tam přímo uvedena:
Ukaž kód, ať vidíme, co nejde.
Kód: Vybrat vše
INSERT INTO tbl_name (a,b,c) VALUES(1,2,3), (4,5,6), (7,8,9);
Re: MYSQL connector
Jasan to si umím přečíst ale co se dává do těchto závorek (1,2,3), (4,5,6), (7,8,9) když jsou jen 3 v závorce (a,b,c)
a pak jak se zapisuje hodnota co vypočívá a jak se zapisuje jméno pole?
a pak jak se zapisuje hodnota co vypočívá a jak se zapisuje jméno pole?
Kód: Vybrat vše
char query[162];
char INSERT_SQL[] = "INSERT INTO balkon.archive (dateTime,usUnits,interval, co2, extraHumid2,appTemp1,extraHumid1,pressure) VALUES (epochtime,16,5,%co2,%tovc,%teplota,%vlhkost,%tlak)";
MySQL_Cursor *cur_mem = new MySQL_Cursor(&conn);
cur_mem->execute(query);
delete cur_mem;
Neexistují hloupé otázky, existují jen hloupé odpovědi.
Chci aby "chytrá" elektronika dělala "chytré" a užitečné věci. Tím není aby nahrazovala něco co se dá hotové koupit za pár korun.
Chci aby "chytrá" elektronika dělala "chytré" a užitečné věci. Tím není aby nahrazovala něco co se dá hotové koupit za pár korun.
Re: MYSQL connector
a,b,c jsou názvy sloupců.
Hodnoty v závorkách jsou pak jednotlivé řádky.
V příkladu:
tedy vznikne v tabulce:
Pokud je ve VALUES více n-tic v závorkách, vytvoří se více řádků v tabulce. Proto je ten insert násobný. Je to rychlejší, než volat insert pro každý řádek (pokud se u těch insertů nemění počet a pořadí sloupců).
Hodnoty v závorkách jsou pak jednotlivé řádky.
V příkladu:
Kód: Vybrat vše
INSERT INTO tbl_name (a,b,c) VALUES(1,2,3), (4,5,6), (7,8,9);
Kód: Vybrat vše
|---|---|---|
| a | b | c |
|---|---|---|
| 1 | 2 | 3 |
| 4 | 5 | 6 |
| 7 | 8 | 9 |
|---|---|---|
Re: MYSQL connector
Jak má tedy vypadat ten kód? Tahhle?
je to odesílání dat do weewx databáze z cjmcu-8128
někde tam mám chybu protože odpověď po serial je :
Kód: Vybrat vše
#include <MySQL_Connection.h>
#include <MySQL_Cursor.h>
char mysqluser[] = "xxxxxx";
char mysqlpassword[] = "yyyyyyyyy";
WiFiClient client;
MySQL_Connection conn((Client *)&client);
if (conn.connect(server_addr, 3306, mysqluser, mysqlpassword))
Serial.println("OK.");
else
Serial.println("FAILED.");
char query[162];
char INSERT_SQL[] = "INSERT INTO balkon.archive (dateTime,usUnits,interval, co2, extraHumid2,appTemp1,extraHumid1,pressure) VALUES (epochtime,16,5,%co2,%tovc,%teplota,%vlhkost,%tlak)";
cur_mem->execute(INSERT_SQL);
delete cur_mem;
Serial.println("Data recorded.");
někde tam mám chybu protože odpověď po serial je :
Error: 237 = You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'interval,co2,extraHumid2,appTemp1,extraHumid1,pressure) VALUES (epochtime,16,...' at line 1.
Neexistují hloupé otázky, existují jen hloupé odpovědi.
Chci aby "chytrá" elektronika dělala "chytré" a užitečné věci. Tím není aby nahrazovala něco co se dá hotové koupit za pár korun.
Chci aby "chytrá" elektronika dělala "chytré" a užitečné věci. Tím není aby nahrazovala něco co se dá hotové koupit za pár korun.
Re: MYSQL connector
Interval je v SQL klíčové slovo, MySQL nepochopilo, že tím myslíš název sloupce. Pro tyto případě je potřeba název "obalit" zpětným apostrofem.
Tedy: `interval`, pro klid duše to samozřejmě můžeš udělat u všech sloupců:
Tedy: `interval`, pro klid duše to samozřejmě můžeš udělat u všech sloupců:
Kód: Vybrat vše
INSERT INTO balkon.archive (`dateTime`, `usUnits`, `interval`, `co2`, `extraHumid2`, `appTemp1`, `extraHumid1`, `pressure`) VALUES ...
Re: MYSQL connector
Pak úplně nevím, co zamýšlíš konstrukcí:
IMHO (ale knihovnu jsem nestudoval) se tam takto hodnoty nedosadí. Dle příkladu bys měl mít v dotazu jen placeholdery "%s" pro char, "%d" pro int... a pak tam pomocí sprintf() dosadit konkrétní hodnoty.
Kód: Vybrat vše
(epochtime,16,5,%co2,%tovc,%teplota,%vlhkost,%tlak)
Re: MYSQL connector
Zpětné apostrofry pomohli ale zase další chyba:
Kód: Vybrat vše
Error: 51 = Unknown column 'epochTime' in 'field list'.
Neexistují hloupé otázky, existují jen hloupé odpovědi.
Chci aby "chytrá" elektronika dělala "chytré" a užitečné věci. Tím není aby nahrazovala něco co se dá hotové koupit za pár korun.
Chci aby "chytrá" elektronika dělala "chytré" a užitečné věci. Tím není aby nahrazovala něco co se dá hotové koupit za pár korun.
Re: MYSQL connector
Neznámý/neexistující sloupec v tabulce
Re: MYSQL connector
tomu rozumím ale jak tam zadat data ? posílám celý kód. Jsou v něm ještě zbytky a smetí...není hotový..
Neexistují hloupé otázky, existují jen hloupé odpovědi.
Chci aby "chytrá" elektronika dělala "chytré" a užitečné věci. Tím není aby nahrazovala něco co se dá hotové koupit za pár korun.
Chci aby "chytrá" elektronika dělala "chytré" a užitečné věci. Tím není aby nahrazovala něco co se dá hotové koupit za pár korun.
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 1 host