Brug af foreach
tilgang fra mit svar
til et andet af dine spørgsmål er ikke en god idé, når du beskæftiger dig med lagrede procedurer.
Mens det virker (som vist i dit spørgsmål, er variablerne sat i $params
array efter udførelse) er det største problem, at du skal angive den fjerde parameter (maxlength
) til oci_bind_by_name
. Du har brugt en statisk værdi på 32
i din kode, men der opstår en fejl, når længden af en værdi overstiger denne. Det kan ikke beregnes under kørsel, og at sætte det til en meget stor værdi er ineffektivt (måske er dette ikke et problem for din applikation).
Da du kører en kendt lagret procedure, bør du kende maxlength
af outputværdier på designtidspunktet, og disse kan indtastes statisk ved at sætte alle oci_*
funktioner i getHours()
, i stedet for at forsøge at abstrahere alle kald til customExecute()
.