sql >> Base de Datos >  >> RDS >> Oracle

Procedimiento almacenado de llamada PHP-OCI con parámetros

Usando el foreach enfoque de mi respuesta a otra de sus preguntas no es una buena idea cuando se trata de procedimientos almacenados.

Si bien funciona (como se muestra en su pregunta, las variables se establecen en $params matriz después de la ejecución), el mayor problema es que debe proporcionar el cuarto parámetro (maxlength ) a oci_bind_by_name . Ha utilizado un valor estático de 32 en su código, pero se genera un error cuando la longitud de un valor excede esto. No se puede calcular en tiempo de ejecución y configurarlo en un valor muy grande es ineficiente (tal vez esto no sea un problema para su aplicación).

Dado que está ejecutando un procedimiento almacenado conocido, debe conocer el maxlength de valores de salida en tiempo de diseño y estos pueden ingresarse estáticamente colocando todos los oci_* funciones en getHours() , en lugar de intentar abstraer todas las llamadas a customExecute() .