PHP 기반 데이터베이스 애플리케이션을 개발할 때는 필드 이름, 데이터 유형, 최대 길이 등과 같은 데이터베이스 쿼리 결과의 필드의 구조 정보를 이해해야합니다. 이는 테이블을 동적으로 생성하고 데이터 형식을 확인하며 심지어 형태 요소를 자동으로 생성하는 데 매우 유용합니다. 다행스럽게도 PHP는 강력한 기능을 제공합니다 .
이 기사에서는 mysqli_result :: fetch_field 함수를 사용하여 쿼리 결과의 필드 구조를보고 특정 코드 예제를 통해 이해를 심화시키는 방법에 대한 포괄적 인 이해를 제공합니다.
mysqli_result :: fetch_field ()는 결과 세트에서 단일 필드에 대한 정보를 나타내는 객체를 반환하는 mysqli_result 클래스의 메소드입니다. 메소드가 호출 될 때마다 더 이상 필드가 없을 때까지 다음 필드에 대한 정보를 반환합니다.
반환 된 객체는 다음을 포함하여 여러 속성을 포함하는 stdclass 객체입니다.
이름 : 필드 이름
orgname : 원래 필드 이름 (별칭이 사용되는 경우)
표 : 필드가 속한 테이블 이름
orgtable : 원래 테이블 이름
def : 기본값 (감가 상각 된, 항상 null )
DB : 데이터베이스 이름
카탈로그 : 데이터베이스 디렉토리 (일반적으로 "def")
max_length : 결과 세트 에서이 필드의 최대 길이
길이 : 필드의 정의 길이
charsetnr : 문자 세트 번호
플래그 : 필드의 플래그 비트 (예 : 기본 키 여부, 널 여부)
유형 : 필드 유형 (예 : mysqli_type_string )
소수점 : 소수
다음은 쿼리 결과에서 데이터베이스에 연결하고 필드의 구조 정보를 얻는 방법을 보여주는 기본 사용 예제입니다.
<code> & lt;? php // 데이터베이스 연결 매개 변수 $ host = "localhost"; $ user = "root"; $ password = "your_password"; $ database = "test_db"; // 데이터베이스 연결을 설정합니다
$ conn = new MySqli ($ host, $ user, $ password, $ database);
// 연결을 확인합니다
if ($ conn-> connect_error) {
다이 ( "연결 실패 :". $ conn-> connect_error);
}
// 쿼리를 실행합니다
$ SQL = "선택 ID, 사용자 이름, 사용자의 이메일";
$ result = $ conn-> query ($ sql);
if ($ result-> num_rows> 0) {
Echo "필드 구조 정보 : <br> <br>";
while ($field = $result->fetch_field()) {
echo "필드 이름: " . $field->name . "<br>";
echo "제휴 테이블: " . $field->table . "<br>";
echo "原始필드 이름: " . $field->orgname . "<br>";
echo "유형: " . $field->type . "<br>";
echo "길이: " . $field->length . "<br>";
echo "가능합니까? NULL: " . ($field->flags & MYSQLI_NOT_NULL_FLAG ? "아니요" : "예") . "<br>";
echo "--------------------------<br>";
}
} 또 다른 {
에코 "결과 없음.";
}
// 연결을 닫습니다
$ conn-> close ();
?>
</코드>
유형은 필드 유형을 나타내는 정수 상수를 반환합니다.
mysqli_type_long (정수)
mysqli_type_var_string (변수 길이 문자열)
mysqli_type_dateTime (dateTime)
맵 배열을 정의하여 이러한 상수를보다 읽기 쉬운 텍스트로 변환 할 수 있습니다.
마찬가지로, 플래그는 필드의 다양한 속성을 나타내는 비트 마스크입니다. 예 : 기본 키인지, 자동으로 증가하는지 등 등급 등과 같은 비트 연산을 사용하여 플래그가 존재하는지 확인할 수 있습니다.
동적으로 헤더 생성 : fetch_field ()를 사용하여 HTML 테이블의 헤더로 필드 이름을 동적으로 얻을 수 있습니다.
필드 검증 : 필드 구조를 미리 가져 오면 사용자 입력을 처리하거나 데이터를 가져올 때 필드 유형과 길이가 기대치를 충족하는지 확인하는 데 도움이 될 수 있습니다.
자동화 개발 : 필드 메타 데이터를 결합하여 자동 양식 생성 및 데이터 검증 규칙을 개발