Използване на foreach
подход от моят отговор
на друг от вашите въпроси не е добра идея, когато работите със съхранени процедури.
Въпреки че работи (както е показано във вашия въпрос, променливите са зададени в $params
масив след изпълнение) най-големият проблем е, че трябва да предоставите четвъртия параметър (maxlength
) към oci_bind_by_name
. Използвали сте статична стойност 32
във вашия код, но възниква грешка, когато дължината на стойност надвишава това. Не може да се изчисли по време на изпълнение и задаването му на много голяма стойност е неефективно (може би това не е проблем за вашето приложение).
Тъй като изпълнявате известна съхранена процедура, трябва да знаете maxlength
на изходните стойности по време на проектиране и те могат да бъдат въведени статично чрез поставяне на всички oci_*
функции в getHours()
, вместо да се опитвате да абстрахирате всички извиквания към customExecute()
.