PHP: Wywołanie procedury zapisanej w MySQL za pomocą parametrów INPUT AND OUTPUT (NIE „INOUT”)

Z PHP chciałbym wywołać procedurę przechowywaną w MySQL. Procedura pobiera dane wejściowei parametry wyjściowe -nie „INOUT” parametry.

Dla prostego przykładu powiedzmy, że w MySQL mam następującą procedurę składowaną:

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 ;

Teraz, od strony skryptu PHP / strony, powiedz, że mam następujące zmienne (nazwiemy je „zmiennymi wejściowymi proc”), które chcę przekazać do procedury składowanej jakowkład parametry, kiedy to nazywam:

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

Powiedzmy, że w skrypcie PHP / stronie strony mam również następujące zmienne (nazwiemy je „zmiennymi wyjściowymi proc”), które chcę przekazać do procedury składowanej jakowydajność parametry, które mają byćustanowiony procedura składowana, gdy ją nazywam:

$procOutput_sum;
$procOutput_product;
$procOutput_average;

Tak więc, w istocie, na skrypcie PHP / stronie strony, co chcę zrobić w istocie(Zdaję sobie sprawę, że poniższy kod jest nieprawidłowy), jest...

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

... i raz wywołany następujący kod PHP ...

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

... powinno wygenerować następujące dane wyjściowe:

Sum: 1368
Product: 44253432
Average: 456

Jednym zastrzeżeniem jest to, że jeśli to możliwe, chciałbym móc to zrobić za pomocą MySQLiproceduralny funkcje / interfejs. Jeśli nie jest to możliwe, to jednak mogę użyć go do pracy.

Programuję już od jakiegoś czasu, ale język PHP jest dla mnie stosunkowo nowym przedsięwzięciem. Znalazłem mnóstwo samouczków na temat wywoływania procedur zapisanych w bazie MySQL z PHP. Niektóre z nich to samouczki dotyczące wywoływania procedur zapisanych w baziewkład parametry, niektóre to samouczki dotyczące wywoływania procedur zapisanych w baziewydajność parametry, a niektóre to samouczki dotyczące wywoływania procedur zapisanych w bazieinout parametry. Nie znalazłem żadnych samouczków ani przykładów dotyczących wywoływania procedur przechowywanychobie wkładi parametry wyjściowe w tym samym czasie, a konkretnienie używając parametrów „inout”. Mam problem z ustaleniem, jak kodować powiązania parametrów (np .: mysqli_stmt_bind_param i mysqli_stmt_bind_result) i sprawić, by wszystko działało poprawnie.

Każda pomoc zostanie bardzo doceniona i dziękuję z góry!

questionAnswers(1)

yourAnswerToTheQuestion