>  기사  >  백엔드 개발  >  결과 세트에서 레코드를 얻는 4가지 방법

결과 세트에서 레코드를 얻는 4가지 방법

WBOY
WBOY원래의
2016-08-08 09:26:121731검색

먼저 SQL을 사용하여 테이블을 생성하고 테이블에 데이터를 삽입합니다.
create table contactInfo(
uid Mediumint(8)
unsigned NOT NULL AUTO_INCREMENT, #Contact ID
name varchar(50) NOT NULL, #이름
                                                                                                                                                                                          >
이메일 varchar(100), #연락처 이메일
기본 키(ui d) # 사용자 ID(예: uid)를 기본 키로 설정
);
fetch_row() , fetch_array(), fetch_assoc() fetch_object()와 fetch_object()의 네 가지 함수는 비슷한 방법을 사용하여 결과 데이터 행을 순차적으로 읽습니다. 필드를 참조하는 방식만 다릅니다
공통점: 각 호출은 자동으로 다음 결과 레코드를 반환합니다. 결과 데이터 테이블의 끝에 도달하면 false가 반환됩니다
1, $ result-> fetch_row()
결과 세트에서 결과 레코드를 가져와서 그 값을 인덱스 배열에 저장하는데, 이 방법이 네 가지 방법 중 가장 편리합니다.
각 필드는 $row[$n] 형식으로 읽어야 합니다. 여기서 $row는 결과 집합에서 얻은 레코드 행에서 반환된 배열이고 $n은 연속적인 정수 첨자입니다.
인덱스 배열을 반환하기 때문에 list() 함수와 함께 사용할 수도 있습니다.
$mysqli=new mysqli("localhost","mysql_user","mysql_pwd","my_db_name");
if(mysqli_connect_errno()){
printf("연결 실패: %s
",mysqli_connect_error());
exit();

}

$mysqli->query('set names gb2312'); // 문자 집합을 국가 표준 2312 코드로 설정

/*부서 번호가 D01인 모든 연락처 이름과 이메일을 추출하여 결과 집합에 저장합니다*/

$result=$mysqli- > query("SELECT name,email FROM contactInfo WHERE DepartmentId='D01'");

 echo 'D01 부서의 연락처 이름과 이메일:';
 echo '

    ';
    while(list($name,$email)=$result->fetch_row()){
    echo '
  1. '.$name:$email.'
  2. ';
    }
    echo '
';
?>
2. $result->fetch_assoc()
이 메서드는 연관 배열 형식으로 결과 레코드를 반환합니다. . 데이터의 필드 이름은 키를 나타내고, 필드 내용은 값을 나타냅니다.
$mysqli=new mysqli('localhost','mysql_user','mysql_pwd','my_db_name');
if(mysqli_connect_errno()){
printf("연결 실패: %s
",mysqli_connect_error());
종료();
}

$mysqli->query('set names gb2312');
$result =mysqli->query('SELECT * FROM contactInfo');

echo '';
echo ''
//< ;일>연락처일>이메일일>';
                                                                                       >                                         
//$result->fetch_accoc()는 $key_name( 키 값) 값에 액세스하려면

echo '';
                                                               | '].''&' '; ;';
echo '';
echo '';
echo '';
echo '';
echo '';
}

echo '

연락처 정보 테이블

태그는 검색 엔진을 더욱 쉽게 만드는 데 사용할 수 있는 테이블에 대한 간략한 설명을 제공합니다.

echo '
사용자 ID이름부서 번호연락처 주소
'.$row['departmentId'].''.$row ['주소'].' '.$row['phone'].' '.$row['email '].'
';
$result-> close();
$mysqli->close();
?>
3. $result->fetch_array()
이 방법은 다음과 같습니다. to be fetch()_row 및 fetch_assco( ) 두 메서드를 결합한 버전은 결과 집합의 각 레코드를 연관 배열 또는 숫자 인덱스 배열로 가져오거나 연관 배열과 인덱스 배열로 동시에 가져올 수 있습니다. 기본적으로 두 배열은 동시에 가져옵니다. 이 기본 동작은 다음과 같이 이 메서드에 다른 값을 전달하여 수정할 수 있습니다.
MYSQLI_ASSOC : 레코드는 연관 배열로 반환되며 필드 이름은 키, 필드 내용은 값입니다.
MYSQLI_NUM : 레코드는 쿼리에 지정된 필드 이름 순서대로 정렬된 인덱스 배열로 반환됩니다.
MYSQLI_BOTH : 기본값이며, 레코드는 연관 배열과 인덱스 배열로 모두 반환됩니다.
4. $result->fetch_object()
이 메서드는 이전 세 가지 메서드와 다르며 배열이 아닌 개체 형식으로 결과 레코드를 반환합니다. 각 필드는 개체 형식으로 액세스해야 하며 데이터 열 이름은 대소문자를 구분합니다.
$mysqli=new mysqli("localhost","mysql_user","mysql_pwd","my_db_name");
if(mysqli_connect_errno()){
printf("연결 실패: %s
",mysqli_connect_error());
종료();

}

$mysqli->query("set names gb2312");
$mysqli->query("SELECT * FROM contactInfo");

echo '';
echo ''
;
echo '';
echo '';
           echo '' ;'.$rowObj->phone.'< ;/td>';
                         echo '';
}
echo '

연락처 정보 양식

사용자 ID이름< ;/th> ; 부서 번호일>연락처 주소일>연락처 번호일>이메일일>';
                                  > uid.'';
echo '
'.$rowObj->name.'' >deparmentId.''.$rowObj->address.'
'
$result->close();
$ mysqli->close();
?> ;
결과 세트의 데이터를 탐색하는 위의 네 가지 방법은 호출될 때마다 자동으로 다음 결과 레코드를 반환합니다. 읽는 순서를 변경하려면 결과 집합 개체의 data_seek() 메서드를 사용하여 현재 레코드 위치를 명시적으로 변경할 수 있습니다. 결과 세트 객체의 num_rows 속성을 사용하여 결과 데이터 테이블의 레코드 수를 제공할 수도 있습니다. 결과 개체의 길이 속성을 사용하여 그룹을 반환할 수도 있습니다. 배열의 각 요소는 위의 네 가지 방법을 사용하여 최종적으로 읽은 결과 레코드의 각 필드에 있는 문자 수입니다.

위 내용은 관련 내용을 포함하여 결과 집합에서 레코드를 얻는 네 가지 방법을 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.


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