> 데이터 베이스 > MySQL 튜토리얼 > `bind_result` 대 `get_result`: 쿼리 결과를 검색하려면 어떤 MySQLi 방법을 사용해야 합니까?

`bind_result` 대 `get_result`: 쿼리 결과를 검색하려면 어떤 MySQLi 방법을 사용해야 합니까?

Susan Sarandon
풀어 주다: 2024-12-13 03:28:10
원래의
614명이 탐색했습니다.

`bind_result` vs. `get_result`: Which MySQLi Method Should I Use for Retrieving Query Results?

bind_result와 get_result 중에서 선택

데이터베이스 쿼리를 위해 준비된 문으로 작업할 때 결과를 처리하기 위한 적절한 방법을 선택하면 결과에 큰 영향을 미칠 수 있습니다. 코드의 효율성과 유연성. 이 기사에서는 결과 데이터를 검색하는 데 일반적으로 사용되는 두 가지 방법인 bind_result와 get_result의 차이점을 살펴봅니다.

bind_result

bind_result는 변수 할당을 정밀하게 제어해야 할 때 이상적입니다. 각 열에 바인딩할 변수를 명시적으로 지정하면 변수 순서가 반환된 행의 구조와 엄격하게 일치합니다. 이 접근 방식은 반환된 행의 구조를 미리 알고 그에 따라 코드를 맞춤화할 수 있는 경우에 유리합니다.

$query1 = 'SELECT id, first_name, last_name, username FROM `table` WHERE id = ?';
$id = 5;

$stmt = $mysqli->prepare($query1);
/*
    Binds variables to prepared statement

    i    corresponding variable has type integer
    d    corresponding variable has type double
    s    corresponding variable has type string
    b    corresponding variable is a blob and will be sent in packets
*/
$stmt->bind_param('i',$id);

/* execute query */
$stmt->execute();

/* Store the result (to get properties) */
$stmt->store_result();

/* Get the number of rows */
$num_of_rows = $stmt->num_rows;

/* Bind the result to variables */
$stmt->bind_result($id, $first_name, $last_name, $username);

while ($stmt->fetch()) {
    echo 'ID: '.$id.'<br>';
    echo 'First Name: '.$first_name.'<br>';
    echo 'Last Name: '.$last_name.'<br>';
    echo 'Username: '.$username.'<br><br>';
}
로그인 후 복사

bind_result의 장점:

  • 오래된 PHP 버전과 호환
  • 별도 반환 변수

bind_result의 단점:

  • 모든 변수를 수동으로 나열해야 함
  • 행을 변수로 반환하려면 더 많은 코드가 필요함 배열
  • 테이블 구조가 변경될 때 코드를 업데이트해야 합니다. 변경사항

get_result

get_result는 데이터 검색을 위한 보다 다양한 솔루션을 제공합니다. 반환된 행의 데이터를 포함하는 연관/열거 배열 또는 객체를 자동으로 생성합니다. 이 방법은 동적 결과 구조를 처리하거나 데이터 액세스에 유연성이 필요할 때 편리합니다.

$query2 = 'SELECT * FROM `table` WHERE id = ?'; 
$id = 5;

$stmt = $mysqli->prepare($query2);
/*
    Binds variables to prepared statement

    i    corresponding variable has type integer
    d    corresponding variable has type double
    s    corresponding variable has type string
    b    corresponding variable is a blob and will be sent in packets
*/
$stmt->bind_param('i',$id);

/* execute query */
$stmt->execute();

/* Get the result */
$result = $stmt->get_result();

/* Get the number of rows */
$num_of_rows = $result->num_rows;

while ($row = $result->fetch_assoc()) {
    echo 'ID: '.$row['id'].'<br>';
    echo 'First Name: '.$row['first_name'].'<br>';
    echo 'Last Name: '.$row['last_name'].'<br>';
    echo 'Username: '.$row['username'].'<br><br>';
}
로그인 후 복사

get_result의 장점:

  • 열거된 배열 또는 객체가 자동으로 데이터로 채워집니다
  • fetch_all() 메서드가 반환되도록 허용 반환된 모든 행을 한 번에

get_result의 단점:

  • MySQL 네이티브 드라이버 필요(mysqlnd)

결론

둘 중 하나의 선택 Bind_result 및 get_result는 애플리케이션의 특정 요구 사항에 따라 달라집니다. Bind_result는 결과 데이터에 대한 정밀도와 제어 기능을 제공하지만 동적 데이터 구조에서는 번거로울 수 있습니다. get_result는 유연성과 편의성을 제공하지만 이전 PHP 버전에서는 지원되지 않을 수 있습니다. 각 방법의 장점과 한계를 이해하면 개발자는 쿼리 결과를 처리할 때 정보를 바탕으로 결정을 내릴 수 있습니다.

위 내용은 `bind_result` 대 `get_result`: 쿼리 결과를 검색하려면 어떤 MySQLi 방법을 사용해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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