Pomocí foreach přístup od moje odpověď
na další z vašich otázek není dobrý nápad při práci s uloženými procedurami.
I když to funguje (jak je uvedeno ve vaší otázce, proměnné jsou nastaveny v $params pole po spuštění) největším problémem je, že musíte zadat čtvrtý parametr (maxlength ) na oci_bind_by_name . Použili jste statickou hodnotu 32 ve vašem kódu, ale když délka hodnoty překročí tuto hodnotu, dojde k chybě. Nelze ji vypočítat za běhu a její nastavení na velmi vysokou hodnotu je neefektivní (možná to není pro vaši aplikaci problém).
Protože používáte známou uloženou proceduru, měli byste znát maxlength výstupních hodnot v době návrhu a ty lze staticky zadat vložením všech oci_* funkce v getHours() namísto pokusu o abstrahování všech volání customExecute() .