PHP를 사용하여 입력 및 출력 매개변수를 모두 사용하여 MySQL 저장 프로시저를 실행하는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2024-11-08 11:25:01
원래의
1015명이 탐색했습니다.

How to Execute MySQL Stored Procedures with Both Input and Output Parameters Using PHP?

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

PHP에서 입력 및 출력 매개변수가 모두 필요한 MySQL 저장 프로시저 실행 도전이 될 수 있습니다. MySQLi는 입력 및 출력 매개변수를 별도로 처리하기 위한 특정 기능을 제공하지만 이 시나리오에 대한 직접적인 지원은 없습니다.

이 제한을 극복하려면 MySQL 사용자 변수와 관련된 해결 방법이 필요합니다. 작동 방식은 다음과 같습니다.

MySQLi 절차 인터페이스 사용:

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

$mysqli = mysqli_connect('host', 'user', 'password', 'database');

$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);
$procOutput_sum = $result['@sum'];
$procOutput_product = $result['@product'];
$procOutput_average = $result['@average'];
로그인 후 복사

여기에서는 먼저 입력 변수를 초기화하고 MySQL 데이터베이스에 대한 연결을 설정합니다. . 준비된 문은 입력 매개 변수가 바인딩된 저장 프로시저를 실행하는 데 사용됩니다. 실행 후 별도의 쿼리를 사용하여 MySQL 사용자 변수에 저장된 출력 매개변수를 검색합니다.

MySQLi 객체 지향 인터페이스 사용:

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

$mysqli = new mysqli('host', 'user', 'password', 'database');

$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();
$procOutput_sum = $result['@sum'];
$procOutput_product = $result['@product'];
$procOutput_average = $result['@average'];
로그인 후 복사

이 코드는 다음을 보여줍니다. 데이터베이스 연결 및 저장 프로시저 실행이 객체 메소드를 통해 처리되는 객체 지향 인터페이스를 사용하는 것과 동일한 접근 방식입니다.

MySQL 사용자 변수에 대한 해결 방법을 사용하면 MySQLi 인터페이스를 사용하여 PHP에서 입력 및 출력 매개변수 모두를 사용하여 저장 프로시저를 효과적으로 실행할 수 있습니다.

위 내용은 PHP를 사용하여 입력 및 출력 매개변수를 모두 사용하여 MySQL 저장 프로시저를 실행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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