Nette Database – nefunkční fetch
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- curl6
- Člen | 29
V modelu mám tento dotaz (zkrácená verze):
return $this->database->query("
SET @lat = ?;
SET @lng = ?;
SELECT ST_ASTEXT(location) FROM places
WHERE ST_CONTAINS(
ST_GEOMFROMTEXT('POLYGON((@lat @lng))'),
location) = 1", $lat, $lng)->fetchAll();
A s tím jsou spojeny dva problémy:
- pokud se vyskytují místo @lat a @lng v polygonu otazníky a předám požadované parametry, nedoplní se
- závažnější problém je ale to, že při snaze o provedení fetchAll() dostávám chybu SQLSTATE[HY000]: General error, takže se nemám ani čeho chytit
Zná někdo nějaké řešení?
- curl6
- Člen | 29
CZechBoY napsal(a):
Posli to jako 3 dotazy.
Když jsem ty dotazy rozdělil, tak mám tohle:
$this->database->query("
SET @area = ST_GEOMFROMTEXT('POLYGON((? ?, ? ?, ? ?, ? ?, ? ?, ? ?))');",
[$lat, $lng]));
Když si dotaz dumpnu, tak vidím, že otazníky se nenahradí hodnotami parametrů. Vypíše se výchozí příkaz a až za středníkem hodnoty.
- Honza.Mottl
- Člen | 104
V Oraclu bych to poslal jako celý blok uzavřený do BEGIN a END. Řekl bych, že by to tady taky mohlo jít.