Korzystanie z foreach
podejście od mojej odpowiedzi
na inne z Twoich pytań nie jest dobrym pomysłem w przypadku procedur składowanych.
Chociaż to działa (jak pokazano w twoim pytaniu, zmienne są ustawione w $params
tablicy po wykonaniu) największym problemem jest to, że musisz podać czwarty parametr (maxlength
) do oci_bind_by_name
. Użyłeś wartości statycznej 32
w kodzie, ale błąd jest zgłaszany, gdy długość wartości przekracza tę wartość. Nie można go obliczyć w czasie wykonywania, a ustawienie bardzo dużej wartości jest nieefektywne (może nie stanowi to problemu dla Twojej aplikacji).
Ponieważ używasz znanej procedury składowanej, powinieneś znać maxlength
wartości wyjściowych w czasie projektowania i można je wprowadzić statycznie, umieszczając wszystkie oci_*
funkcje w getHours()
, zamiast próbować abstrahować wszystkie wywołania customExecute()
.