Problém při vkládání dat do databáze
- curl6
- Člen | 29
Ahoj,
mám vytvořený formulář (pomocí komponenty) a při onSuccess zavolám metodu, kde do pole hodnot ($values) vkládám ještě data, která vznikají nějakým dalším zpracováním (uživatel je nevkládá přímo ve formuláři; např. ID uživatele). Data následně odešlu modelové třídě, která provede jen jednoduché
$this->database->table('table')->insert($values);
V tabulce se nachází sloupec s datovým typem point. Po odeslání formuláře se zobrazí hláška „Cannot get geometry object from data you send to the GEOMETRY field“, pod touto hláškou ukázka provedeného SQL kódu, kde je ale místo požadovaného parametru otazník (jako i u jiných parametrů, ale nemyslím si, že to má souvislost s „ručním“ přidáváním, neboť některé parametry se normálně zobrazí). Pokud ale kouknu na call stack a argumenty kroku, ve kterém je údajně chyba, vidím vše tak, jak má být. Nechápu tedy, proč se hodnoty nedosadí místo otazníků.
Ví někdo, co s tím? Řešili jste někdy vkládání do pointu? Ještě bych dodal, že parametr je posílán jako string – „POINT(lat, lng)“ -, který následně zpracuje trigger (ST_GEOMFROMTEXT(NEW.coordinates)).
Budu vděčný za každou pomoc, protože už se v tom vážně ztrácím.
- curl6
- Člen | 29
Zřejmě se tu nikdo nenajde, zkusím tedy změnit otázku. Jak byste v NDB/Table řešili vkládání hodnot, které mají být uvnitř nějaké funkce.?
Příklad:
INSERT INTO table VALUES (1, STR_TO_DATE('1-01-2012', '%d-%m-%Y'));
Vím, že zrovna tohle se dá vyřešit i jinak, je to pouze ilustrace problému.
- curl6
- Člen | 29
Mysteria napsal(a):
Zkusil bych tohle, ale nejsem si jist, jestli ten formát data projde přímo takhle a nebude ho potřeba dát do parametru.
->insert([ 'id' => 1, 'date' => new SqlLiteral("STR_TO_DATE('1-01-2012', '%d-%m-%Y')") ]);
Bože, ty ani nevíš, jak moc jsi mi pomohl! Já tu nad tím sedím snad den a půl. Strašně ti děkuji.