Nette database mě nutí konvertovat int na string

před 5 měsíci

Michal Kumžák
Člen | 17
+
0
-

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?

před 5 měsíci

David Grudl
Nette Core | 6946
+
0
-

Zkus master verzi Nette\Database, jestli to bude fungovat.

před 5 měsíci

Michal Kumžák
Člen | 17
+
0
-

David Grudl napsal(a):

Zkus master verzi Nette\Database, jestli to bude fungovat.

Stáhnul jsem si a funguje bez nutnosti konvertovat. Děkuji.