Nette database mě nutí konvertovat int na string
- Michal Kumžák
- Člen | 106
Zdravím
Používám poslední verzi nette 3 a když potřebuji provést následující sql dotaz, tak musím všechny integery konvertovat na string, jinak na mě vyskočí tato chyba:
Argument 1 passed to Nette\Database\Connection::quote() must be of the type string, integer given, called in D:\web\__prace\delfin\_novers\vendor\nette\database\src\Database\SqlPreprocessor.php on line 144
Zde je pak vlastní sql
<?php
$sql = "
(SELECT DISTINCT c.`vychozipenze_id`, p.`nazev`
FROM `zajezdy_sestavy` AS s, `zajezdy_ubytovani` AS u, `ubytovacizarizeni_ceniky` AS c, `ciselniky_penze` AS p
WHERE s.`termin_id`=? AND s.`typ_id`=?
AND s.`ubytovani_id`=u.`id`
AND c.`id`=u.`ubytovacizarizenicenik_id`
AND c.`vychozipenze_id`=p.`id`
LIMIT 0,1)
UNION ALL
(SELECT DISTINCT cp.`penze_id`, p.`nazev`
FROM `zajezdy_ceniky_priplatky` AS cp, `ciselniky_penze` AS p
WHERE cp.`zajezdycenik_id`=(SELECT c.`id` FROM `zajezdy_ceniky` AS c WHERE c.`termin_id`=? AND c.`platnost_od`<=? ORDER BY c.`platnost_od` DESC LIMIT 0,1)
AND cp.`penze_id`=p.`id`)";
$retval = $this->database->fetchPairs($sql, (string)$termin_id, (string)SESTAVA_UBYTOVANI, (string)$termin_id, $datum);
?>
Dělám něco špatně, nebo to prostě musím takto konvertovat, protože je to složitý sql dotaz?
- Michal Kumžák
- Člen | 106
David Grudl napsal(a):
Zkus master verzi Nette\Database, jestli to bude fungovat.
Stáhnul jsem si a funguje bez nutnosti konvertovat. Děkuji.