Utilisation de foreach
approche de ma réponse
à une autre de vos questions n'est pas une bonne idée lorsqu'il s'agit de procédures stockées.
Bien que cela fonctionne (comme indiqué dans votre question, les variables sont définies dans le $params
tableau après exécution), le plus gros problème est que vous devez fournir le quatrième paramètre (maxlength
) à oci_bind_by_name
. Vous avez utilisé une valeur statique de 32
dans votre code, mais une erreur est générée lorsque la longueur d'une valeur dépasse cette valeur. Il ne peut pas être calculé au moment de l'exécution et le définir sur une valeur très élevée est inefficace (ce n'est peut-être pas un problème pour votre application).
Puisque vous exécutez une procédure stockée connue, vous devez connaître le maxlength
des valeurs de sortie au moment de la conception et celles-ci peuvent être entrées statiquement en mettant tous les oci_*
fonctions dans getHours()
, au lieu d'essayer d'abstraire tous les appels à customExecute()
.