PHP: вызов хранимой процедуры MySQL как с входными, так и с выходными параметрами (НЕ «INOUT»)Php

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 PHP: вызов хранимой процедуры MySQL как с входными, так и с выходными параметрами (НЕ «INOUT»)

Сообщение Anonymous »

Из PHP я хотел бы вызвать хранимую процедуру в MySQL. Процедура принимает входные параметры и, а не параметры а не INOUT.

Для простого примера предположим, что у меня есть следующая хранимая процедура в 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 ;
Теперь, со стороны PHP-скрипта/страницы, предположим, что у меня есть следующие переменные (мы будем называть их «входными переменными процесса»), которые я хочу передать в хранимая процедура в качестве входных параметров при ее вызове:

Код: Выделить всё

$procInput1 = "123";
$procInput2 = "456";
$procInput3 = "789";
Допустим, на стороне PHP-скрипта/страницы у меня также есть следующие переменные (мы будем называть их «выходными переменными процесса»), которые я хочу передать в хранимая процедура в качестве выходных параметров, которые устанавливаются хранимой процедурой при ее вызове:

Код: Выделить всё

$procOutput_sum;
$procOutput_product;
$procOutput_average;
Итак, по сути, на стороне PHP-скрипта/страницы то, что я хочу делать, по сути (Я понимаю, что следующий код не действительно), это...

Код: Выделить всё

call test_proc($procInput1, $procInput2, $procInput3, $procOutput_sum, $procOutput_product, $procOutput_average);
...и после вызова следующий код PHP...

Код: Выделить всё

echo "Sum: ".$procOutput_sum;
echo "Product: ".$procOutput_product;
echo "Average: ".$procOutput_average;
... должен выдать следующий результат:

Код: Выделить всё

Sum: 1368
Product: 44253432
Average: 456
Одно предостережение: если это вообще возможно, я хотел бы иметь возможность сделать это с помощью процедурных функций/интерфейса MySQLi. Если это невозможно, то я смогу заставить его работать.

Я занимаюсь программированием уже довольно давно, но язык PHP относительно новое для меня начинание. Я нашел множество руководств по вызову хранимых процедур MySQL из PHP. Некоторые из них представляют собой руководства по вызову хранимых процедур с параметрами входные, некоторые — руководства по вызову хранимых процедур с параметрами выходные, а некоторые — руководства по вызову хранимых процедур с помощью inout< /стронг> параметры. Я не нашел никаких руководств или примеров по вызову хранимых процедур, которые одновременно принимают оба входных и выходных параметра, но при этом не используют " входные параметры. У меня возникли проблемы с выяснением того, как закодировать привязки параметров (например: mysqli_stmt_bind_param и mysqli_stmt_bind_result) и заставить все это работать правильно.

Любая помощь будет принята с благодарностью и Заранее благодарю!

Подробнее здесь: https://stackoverflow.com/questions/170 ... meters-not
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»