>  기사  >  데이터 베이스  >  PHP에서 입력 및 출력 매개변수를 사용하여 MySQL 저장 프로시저를 호출하는 방법은 무엇입니까?

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

Susan Sarandon
Susan Sarandon원래의
2024-11-07 00:26:02469검색

How to Call MySQL Stored Procedures with Input and Output Parameters in PHP?

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

개발자는 PHP 스크립트에서 저장 프로시저를 호출해야 하는 경우가 종종 있습니다. 저장 프로시저는 입력 및 출력 매개변수의 조합을 사용할 수 있으며, 입력 매개변수는 프로시저에 값을 제공하고 출력 매개변수는 프로시저에서 계산된 값을 수신합니다. 이 기사에서는 "inout" 매개변수를 제외한 입력 및 출력 매개변수를 모두 취하는 MySQL 저장 프로시저 호출에 중점을 둡니다.

MySQLi 인터페이스의 과제

불행히도 MySQLi 절차적 및 객체 지향 인터페이스는 출력 저장 프로시저 매개변수에 대한 기본 지원이 부족합니다. 해결 방법으로 MySQL 사용자 변수를 활용하여 출력 값을 수신하고 별도의 SELECT 문을 사용하여 검색할 수 있습니다. 사용자 변수와 SELECT 문을 구현하면 입력 및 출력 매개변수가 모두 포함된 저장 프로시저를 효과적으로 처리할 수 있습니다.

절차적 접근 방식

절차적 MySQLi 인터페이스를 사용하는 다음 PHP 코드를 고려하세요.

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

$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);
$procOutput_sum = $result['@sum'];
$procOutput_product = $result['@product'];
$procOutput_average = $result['@average'];

이 예에서는 MySQL 사용자 변수(@sum, @product, @average)가 저장 프로시저에 정의되어 있습니다. mysqli_query("SELECT @sum, @product, @average")에 대한 호출은 저장 프로시저에 의해 설정된 값을 검색하고 이를 PHP 변수($procOutput_sum, $procOutput_product, $procOutput_average)에 할당합니다.

객체- 지향적 접근 방식

또는 객체 지향 MySQLi 인터페이스를 사용할 수 있습니다.

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

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

객체 지향 접근 방식은 prepare(), 바인딩_param(), 실행을 활용하는 유사한 패턴을 따릅니다. () 및 query() 메서드를 사용하여 저장 프로시저를 호출하고 사용자 변수를 통해 출력 값을 검색합니다.

MySQL 사용자 변수와 SELECT 문을 활용하여 PHP 개발자는 입력과 출력이 모두 필요한 저장 프로시저를 효과적으로 호출할 수 있습니다. 매개변수. 이 기술은 MySQLi 인터페이스의 기본 출력 매개변수 지원 부족에 대한 해결 방법을 제공합니다.

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.