>  기사  >  백엔드 개발  >  PHP에서 MySQLi를 사용하여 저장 프로시저에서 여러 결과 세트를 검색하려면 어떻게 해야 합니까?

PHP에서 MySQLi를 사용하여 저장 프로시저에서 여러 결과 세트를 검색하려면 어떻게 해야 합니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-01 08:58:02709검색

How do I retrieve multiple result sets from a stored procedure using MySQLi in PHP?

MySQLi를 사용하여 저장 프로시저에서 여러 결과 세트 검색

저장 프로시저 "multiples"는 여러 결과 세트를 생성합니다. 후속 결과 세트로 이동하고 데이터를 검색하려면 MySQLi 확장을 사용하여 다음 단계를 따르십시오.

PHP 절차 스타일:

<code class="php">// Prepare the statement
$stmt = mysqli_prepare($db, 'CALL multiples(?, ?)');

// Bind parameters
mysqli_stmt_bind_param($stmt, 'ii', $param1, $param2);

// Execute the statement
mysqli_stmt_execute($stmt);

// Fetch the first result set
$result1 = mysqli_stmt_get_result($stmt);
while ($row1 = $result1->fetch_assoc()) {
  echo "Result 1: " . $row1['id'] . "\n";
}

// Advance to the second result set
mysqli_stmt_next_result($stmt);
$result2 = mysqli_stmt_get_result($stmt);

// Fetch and print the second result set
while ($row2 = $result2->fetch_assoc()) {
  echo "Result 2: " . $row2['id'] . "\n";
}

// Close the statement
mysqli_stmt_close($stmt);</code>

PHP 개체- 지향 스타일:

<code class="php">// Create a prepared statement object
$stmt = $db->prepare('CALL multiples(?, ?)');

// Bind parameters
$stmt->bind_param('ii', $param1, $param2);

// Execute the statement
$stmt->execute();

// Fetch the first result set
$result1 = $stmt->get_result();
while ($row1 = $result1->fetch_assoc()) {
  echo "Result 1: " . $row1['id'] . "\n";
}

// Advance to the second result set
$stmt->next_result();

// Store and print results from the second result set
$result2 = $stmt->get_result();
while ($row2 = $result2->fetch_assoc()) {
  echo "Result 2: " . $row2['id'] . "\n";
}

// Close the statement
$stmt->close();</code>

추가 참고 사항:

  • 다음 결과 세트로 진행한 후 계속 진행하기 전에 이를 가져와 처리해야 합니다.
  • 저장 프로시저가 빈 문자열로 반환되는 정수를 생성하는 경우 데이터베이스 테이블의 열 유형을 확인하세요.
  • 더 깔끔한 작업을 위해 MySQLi에서 객체 지향 스타일을 사용하는 것을 고려하세요. 더욱 캡슐화된 코드 구조를 제공합니다.

위 내용은 PHP에서 MySQLi를 사용하여 저장 프로시저에서 여러 결과 세트를 검색하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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