PHP: llamar al procedimiento almacenado de MySQL con los parámetros INPUT y OUTPUT (NO "INOUT")

Desde PHP me gustaría llamar a un procedimiento almacenado en MySQL. El procedimiento toma entrada.y parámetros de salida -no "EN FUERA" parámetros

Para un ejemplo simple, digamos que tengo el siguiente procedimiento almacenado en MySQL:

DELIMITER $

DROP PROCEDURE IF EXISTS `test_proc`$
CREATE PROCEDURE `test_proc`(
    in input_param_1 int,
    in input_param_2 int,
    in input_param_3 int,
    out output_sum int,
    out output_product int,
    out output_average int
)
BEGIN
    set output_sum = input_param_1 + input_param_2 + input_param_3;
    set output_product = input_param_1 * input_param_2 * input_param_3;
    set output_average = (input_param_1 + input_param_2 + input_param_3) / 3;
END$

DELIMITER ;

Ahora, desde el lado del script / página de PHP, digamos que tengo las siguientes variables (las llamaremos "variables de entrada de proc") que deseo alimentar al procedimiento almacenado comoentrada parámetros cuando lo llamo:

$procInput1 = "123";
$procInput2 = "456";
$procInput3 = "789";

Digamos que en el lado de la secuencia de comandos PHP / página también tengo las siguientes variables (las llamaremos "variables de salida de proc") que quiero alimentar al procedimiento almacenado comosalida parámetros para serestablecido por El procedimiento almacenado cuando lo llamo:

$procOutput_sum;
$procOutput_product;
$procOutput_average;

Así que, en esencia, en el lado de script / página de PHP, lo que quiero poder hacer, en esencia(Me doy cuenta de que el siguiente código no es válido), es...

call test_proc($procInput1, $procInput2, $procInput3, $procOutput_sum, $procOutput_product, $procOutput_average);

... y, una vez llamado, el siguiente código PHP ...

echo "Sum: ".$procOutput_sum;
echo "Product: ".$procOutput_product;
echo "Average: ".$procOutput_average;

... debe producir el siguiente resultado:

Sum: 1368
Product: 44253432
Average: 456

Una advertencia es que, si es posible, me gustaría poder hacerlo usando MySQLiprocesal funciones / interfaz. Si no es posible, entonces, sin embargo, puedo hacer que funcione es lo que usaré.

He estado programando durante bastante tiempo, pero el lenguaje PHP es un esfuerzo relativamente nuevo para mí. He encontrado toneladas de tutoriales sobre cómo llamar a los procedimientos almacenados de MySQL desde PHP. Algunos son tutoriales sobre cómo llamar a procedimientos almacenados conentrada parámetros, algunos son tutoriales sobre cómo llamar a procedimientos almacenados consalida parámetros, y algunos son tutoriales sobre cómo llamar a procedimientos almacenados conEn fuera parámetros No he encontrado ningún tutorial o ejemplo sobre cómo llamar a procedimientos almacenados que llevanambos entraday parámetros de salida al mismo tiempo, mientras que específicamenteno utilizando parámetros "inout". Tengo problemas para averiguar cómo codificar los enlaces de parámetros (por ejemplo, mysqli_stmt_bind_param y mysqli_stmt_bind_result) y hacer que todo funcione correctamente.

Cualquier ayuda será muy apreciada y doy gracias de antemano!

Respuestas a la pregunta(1)

Su respuesta a la pregunta