Aha, jasně:
Nejprve si připravíš "nedosazený" dotaz, něco jako statement. Tam, kam budeš chtít později dosadit textovou proměnnou, umístíš placeholder %s, tam kde
bude int, dáš placeholder %d.
Pozor na floaty, ty budeš muset konvertovat na string pomocí dtostrf() a dosadit jako %s.
Kód: Vybrat vše
char sql_stmt[] = "INSERT INTO table (col1, col2, col3) VALUES ('%s',%d,'%s')";
Pak si připravíš nějaký buffer, kam se uloží "dosazený" dotaz.
No a teď placeholdery nahradíš hodnotami proměnných.
Kód: Vybrat vše
sprintf(query, sql_stmt, "test", 17, "col3");
Co se stalo?
Do query se uložil dotaz v sql_stmt a jeho placeholdery se nahradily za reálné hodnoty. Pozor, u hodnot je důležité zachovat pořadí placeholderů.
Za první %s se dosadilo "test", za druhé %d se dosadilo 17, za poslední %s se dosadilo "col3".
A vykonám.
Do DB se poslal dotaz:
Kód: Vybrat vše
INSERT INTO table (col1, col2, col3) VALUES ('test',17,'col3')