현재 위치: > 최신 기사 목록> mysqli :: stmt_init 함수를 통해 데이터베이스 필드의 메타 데이터를 얻는 방법은 무엇입니까?

mysqli :: stmt_init 함수를 통해 데이터베이스 필드의 메타 데이터를 얻는 방법은 무엇입니까?

M66 2025-07-18

PHP에서는 확장자를 사용하여 데이터베이스를 작동 할 때 쿼리 결과 자체를 얻을뿐만 아니라 필드 이름, 유형, 길이 등과 같은 쿼리 필드의 세부 사항을 이해해야합니다.이 정보를 필드의 메타 데이터 라고합니다.

이 기사에서는 특정 예제를 사용하여 MySQLI :: STMT_INIT를 사용하여 ready ()result_metadata () 메소드를 결합하여 데이터베이스 필드의 메타 데이터를 얻는 방법을 설명합니다.

1 단계 : 데이터베이스 연결 설정

먼저 MySQLI 클래스를 사용하여 데이터베이스에 연결해야합니다.

 <?php
$mysqli = new mysqli('localhost', 'username', 'password', 'database');

if ($mysqli->connect_errno) {
    die('연결이 실패했습니다: ' . $mysqli->connect_error);
}
?>

2 단계 : SQL 문을 초기화하고 준비하십시오

다음으로 stmt_init ()를 사용하여 mysqli_stmt 객체를 초기화하고 read () 메소드를 사용하여 SQL 쿼리 문을 준비합니다.

 <?php
$stmt = $mysqli->stmt_init();

if (!$stmt->prepare('SELECT id, name, email FROM users WHERE status = ?')) {
    die('전처리가 실패했습니다: ' . $stmt->error);
}
?>

3 단계 : 매개 변수를 바인딩하고 쿼리를 실행하십시오

상태 = 'Active' 로 사용자를 쿼리하고 싶다고 가정합니다.

 <?php
$status = 'active';
$stmt->bind_param('s', $status);

if (!$stmt->execute()) {
    die('실행 실패: ' . $stmt->error);
}
?>

4 단계 : 메타 데이터를 획득하고 봅니다

이제 요점이 여기에 있습니다 - Query 결과의 필드 메타 데이터를 얻기 위해 result_metadata () 메소드를 호출합니다.

 <?php
$metadata = $stmt->result_metadata();

if ($metadata) {
    while ($field = $metadata->fetch_field()) {
        echo "필드 이름: " . $field->name . "<br>";
        echo "필드 유형: " . $field->type . "<br>";
        echo "최대 길이: " . $field->max_length . "<br>";
        echo "<hr>";
    }
    $metadata->free();
} else {
    echo "메타 데이터를 사용할 수 없습니다。";
}
?>

여기에서 fetch_field ()는 필드 세부 사항이 포함 된 객체를 반환하며 일반적인 속성에는 다음이 포함됩니다.

  • 이름 → 필드 이름

  • 유형 → 필드 유형 (숫자 코드, 매뉴얼 비교가 필요합니다)

  • max_length → 필드 최대 길이 (참고 : 결과 세트에만 유효합니다)

5 단계 : 리소스를 자유롭게하고 연결을 닫습니다

마지막으로 문장을 해제하고 데이터베이스 연결을 닫는 것을 잊지 마십시오.

 <?php
$stmt->close();
$mysqli->close();
?>

샘플 출력

쿼리가 3 개의 필드 ID , 이름이메일을 반환한다고 가정하면 출력은 다음과 같습니다.

 필드 이름: id
필드 유형: 3
최대 길이: 0
-----------------------
필드 이름: name
필드 유형: 253
최대 길이: 0
-----------------------
필드 이름: email
필드 유형: 253
최대 길이: 0

필드 유형 숫자 값은 MySQL 매뉴얼의 유형 상수 참조해야 합니다 .

요약