PDO를 사용하여 OUT 매개변수가 있는 저장 프로시저에서 출력을 검색하는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2024-11-07 08:12:02
원래의
797명이 탐색했습니다.

How to Retrieve Output from Stored Procedures with OUT Parameters Using PDO?

PDO를 사용하여 OUT 매개변수로 저장 프로시저 호출

데이터베이스 프로그래밍에서 저장 프로시저는 복잡한 데이터베이스 작업을 캡슐화하는 데 필수적입니다. PDO를 사용하여 저장 프로시저에서 출력을 검색하는 것은 어려울 수 있습니다.

문제:
PDO를 사용하여 OUT 매개변수가 있는 저장 프로시저를 호출하면 다음과 같은 오류가 발생할 수 있습니다.

PDOException: SQLSTATE[42000]: Syntax error or access violation: 1414 OUT or INOUT argument 1 for routine mydb.proc_OUT is not a variable or NEW pseudo-variable in BEFORE trigger
로그인 후 복사

해결책:
PDO는 OUT 매개변수가 별도의 쿼리를 사용하여 검색될 것으로 예상합니다. 다음 단계에서는 올바른 접근 방식을 설명합니다.

  1. PDO 문을 준비합니다.

    $stmt = $db->prepare("CALL proc_OUT(?)");
    로그인 후 복사
  2. 바인드 OUT 매개변수:

    $stmt->bindParam(1, $return_value, PDO::PARAM_STR, 4000);
    로그인 후 복사
  3. 저장 프로시저 실행:

    $stmt->execute();
    로그인 후 복사
  4. OUT 매개변수 쿼리:

    $stmt2 = $db->query("SELECT @return_value");
    $row = $stmt2->fetch(PDO::FETCH_NUM);
    $return_value = $row[0];
    로그인 후 복사

예:
다음은 OUT 매개변수를 사용하여 저장 프로시저를 호출하는 예입니다.

$db = new PDO("mysql:host=localhost;dbname=mydb", "username", "password");

// Stored procedure definition
$sql = "CREATE PROCEDURE proc_OUT (OUT var1 VARCHAR(100))
BEGIN
    SET var1 = 'This is a test';
END";
$db->query($sql);

// Call the stored procedure
$stmt = $db->prepare("CALL proc_OUT(?)");
$stmt->bindParam(1, $return_value, PDO::PARAM_STR, 4000);
$stmt->execute();

// Query the OUT parameter
$stmt2 = $db->query("SELECT @return_value");
$row = $stmt2->fetch(PDO::FETCH_NUM);
$return_value = $row[0];

echo $return_value; // Output: 'This is a test'
로그인 후 복사

이 접근 방식을 따르면 PDO를 사용하여 OUT 매개 변수가 있는 저장 프로시저를 성공적으로 호출할 수 있습니다.

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

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