Usando il foreach
approccio da la mia risposta
a un'altra delle tue domande non è una buona idea quando si tratta di stored procedure.
Mentre funziona (come mostrato nella tua domanda, le variabili sono impostate in $params
array dopo l'esecuzione) il problema più grande è che devi fornire il quarto parametro (maxlength
) a oci_bind_by_name
. Hai utilizzato un valore statico di 32
nel tuo codice, ma viene generato un errore quando la lunghezza di un valore supera questo. Non può essere calcolato in fase di esecuzione e impostarlo su un valore molto grande è inefficiente (forse questo non è un problema per la tua applicazione).
Poiché stai eseguendo una procedura memorizzata nota, dovresti conoscere il maxlength
di valori di output in fase di progettazione e questi possono essere inseriti staticamente inserendo tutti gli oci_*
funzioni in getHours()
, invece di tentare di astrarre tutte le chiamate a customExecute()
.