> 데이터 베이스 > MySQL 튜토리얼 > PHP에서 입력 및 출력 매개변수를 모두 사용하여 MySQL 저장 프로시저를 호출하려면 어떻게 해야 합니까?

PHP에서 입력 및 출력 매개변수를 모두 사용하여 MySQL 저장 프로시저를 호출하려면 어떻게 해야 합니까?

Susan Sarandon
풀어 주다: 2024-11-08 02:13:01
원래의
524명이 탐색했습니다.

How can I call a MySQL Stored Procedure with Both Input and Output Parameters in PHP?

PHP에서 입력 및 출력 매개변수를 모두 사용하여 MySQL 저장 프로시저 호출

입력 및 출력 매개변수(INOUT 매개변수 제외)가 모두 필요한 MySQL에서 저장 프로시저를 호출하는 경우, PHP의 연결 및 명령문 인터페이스의 미묘한 차이를 이해하는 것이 중요합니다.

프로시저 설정

입력 매개변수를 가져와 출력 값을 계산하는 다음 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 연결 및 명령문

이 프로시저를 호출하려면 MySQLi용 절차적 또는 객체 지향 인터페이스를 사용할 수 있습니다.

절차적 인터페이스:

$mysqli = mysqli_connect();
$call = mysqli_prepare($mysqli, 'CALL test_proc(?, ?, ?, @sum, @product, @average)');
mysqli_stmt_bind_param($call, 'iii', $procInput1, $procInput2, $procInput3);
mysqli_stmt_execute($call);

$select = mysqli_query($mysqli, 'SELECT @sum, @product, @average');
$result = mysqli_fetch_assoc($select);
로그인 후 복사

객체 지향 인터페이스:

$mysqli = new mysqli();
$call = $mysqli->prepare('CALL test_proc(?, ?, ?, @sum, @product, @average)');
$call->bind_param('iii', $procInput1, $procInput2, $procInput3);
$call->execute();

$select = $mysqli->query('SELECT @sum, @product, @average');
$result = $select->fetch_assoc();
로그인 후 복사

매개변수 바인딩

두 인터페이스 모두 매개변수 바인딩 단계가 중요합니다. 입력 매개변수는 일반적으로 정수의 경우 'i'로 바인딩되고, 출력 매개변수는 '@' 뒤에 매개변수 이름을 사용하여 바인딩됩니다.

출력 검색

실행 후 CALL 문에서는 저장 프로시저가 채운 MySQL 사용자 변수(@sum, @product, @average)에서 값을 검색하기 위해 별도의 SELECT 문이 실행됩니다.

결론

MySQLi는 기본적으로 직접 출력 매개변수 바인딩을 지원하지 않지만 사용자 변수와 후속 SELECT 문을 사용하면 개발자가 입력 및 출력 매개변수가 모두 필요한 프로시저로 작업할 수 있습니다.

위 내용은 PHP에서 입력 및 출력 매개변수를 모두 사용하여 MySQL 저장 프로시저를 호출하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿