PHP 응용 프로그램을 개발할 때는 종종 MySQL 데이터베이스와 상호 작용해야합니다. 이 과정에서 데이터베이스 쿼리 결과의 필드 정보를 얻는 것이 일반적인 요구 사항입니다. 예를 들어, 각 필드의 이름, 유형, 길이 등에 대한 자세한 정보를 얻을 수 있습니다. MySQL의 PHP Extension에서 MySQL_Fetch_field () 함수는 이러한 필드 정보를 얻는 편리한 방법을 제공합니다. mysql_fetch_field ()가 더 이상 사용되지 않았고 MySQLI 또는 PDO가 권장되지만 여전히 클래식 MySQL 확장의 일반적인 부분이며, 이전 프로젝트 또는 호환성 지원이 필요한 시나리오에 적합합니다.
이 기사는 mysql_fetch_field ()를 사용하여 MySQL 필드 정보를 정확하게 얻고 예제를 통해이 기능을 적용하는 방법을 설명하는 방법을 자세히 소개합니다.
mysql_fetch_field ()는 mysql query 결과 세트에서 현재 필드 정보를 가져 오는 함수입니다. mysql_fetch_field ()가 호출 될 때마다 쿼리 결과 세트 (예 : 필드 이름, 필드 유형 등)에서 다음 필드의 메타 데이터 정보를 반환합니다. 일반적으로 mysql_query () 또는 mysql_query () 쿼리를 실행 한 후 MySQL_Fetch_field ()를 사용하여 필드의 관련 데이터를 얻습니다.
<span><span><span class="hljs-title function_ invoke__">mysql_fetch_field</span></span><span>(resource </span><span><span class="hljs-variable">$result</span></span><span>, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$field_offset</span></span><span> = -</span><span><span class="hljs-number">1</span></span><span>)
</span></span>
$ 결과 : 이것은 MySQL Query 결과 세트의 리소스이며, 일반적으로 mysql_query () 를 통해 쿼리 문을 실행 한 후에 얻습니다.
$ field_offset : 선택 사항 필드 오프셋 (기본값)으로 다음 필드가 반환되었음을 나타냅니다. 특정 필드 오프셋이 제공되면 함수는 필드의 메타 데이터를 반환합니다.
이 함수는 필드에 대한 다양한 정보가 포함 된 객체를 반환합니다. 구체적으로 여기에는 다음 속성이 포함됩니다.
이름 : 필드 이름
표 : 필드가있는 테이블 이름
Max_length : 필드의 최대 길이
NOT_NULL : 널 필드가 아닌지 여부
길이 : 필드의 실제 길이
유형 : 필드의 유형
깃발 : 필드 깃발
ID , 이름 , 이메일 및 create_at 와 같은 여러 필드가있는 MySQL 테이블 사용자가 있다고 가정합니다. 다음 단계를 통해이 필드의 메타 데이터를 얻을 것입니다.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 연결하십시오MySQL데이터 베이스</span></span><span>
</span><span><span class="hljs-variable">$conn</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mysql_connect</span></span><span>(</span><span><span class="hljs-string">"localhost"</span></span><span>, </span><span><span class="hljs-string">"root"</span></span><span>, </span><span><span class="hljs-string">"password"</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-variable">$conn</span></span><span>) {
</span><span><span class="hljs-keyword">die</span></span><span>(</span><span><span class="hljs-string">"Connection failed: "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">mysql_error</span></span><span>());
}
</span><span><span class="hljs-comment">// 选择데이터 베이스</span></span><span>
</span><span><span class="hljs-title function_ invoke__">mysql_select_db</span></span><span>(</span><span><span class="hljs-string">"test_db"</span></span><span>, </span><span><span class="hljs-variable">$conn</span></span><span>);
</span><span><span class="hljs-comment">// 구현하다SQL질문</span></span><span>
</span><span><span class="hljs-variable">$query</span></span><span> = </span><span><span class="hljs-string">"SELECT id, name, email FROM users"</span></span><span>;
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mysql_query</span></span><span>(</span><span><span class="hljs-variable">$query</span></span><span>, </span><span><span class="hljs-variable">$conn</span></span><span>);
</span><span><span class="hljs-comment">// 현장 정보를 얻으십시오</span></span><span>
</span><span><span class="hljs-variable">$num_fields</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mysql_num_fields</span></span><span>(</span><span><span class="hljs-variable">$result</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"질문结果전지信息:\n"</span></span><span>;
</span><span><span class="hljs-keyword">for</span></span><span> (</span><span><span class="hljs-variable">$i</span></span><span> = </span><span><span class="hljs-number">0</span></span><span>; </span><span><span class="hljs-variable">$i</span></span><span> < </span><span><span class="hljs-variable">$num_fields</span></span><span>; </span><span><span class="hljs-variable">$i</span></span><span>++) {
</span><span><span class="hljs-variable">$field_info</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mysql_fetch_field</span></span><span>(</span><span><span class="hljs-variable">$result</span></span><span>, </span><span><span class="hljs-variable">$i</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"전지 <span class="hljs-subst">{$i}</span></span></span><span>:\n";
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"이름:<span class="hljs-subst">{$field_info->name}</span></span></span><span>\n";
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"유형:<span class="hljs-subst">{$field_info->type}</span></span></span><span>\n";
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"테이블 이름:<span class="hljs-subst">{$field_info->table}</span></span></span><span>\n";
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"최대 길이:<span class="hljs-subst">{$field_info->max_length}</span></span></span><span>\n";
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"길이:<span class="hljs-subst">{$field_info->length}</span></span></span><span>\n";
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"이든NOT NULL:<span class="hljs-subst">{$field_info->not_null}</span></span></span><span>\n\n";
}
</span><span><span class="hljs-comment">// 연결을 닫으십시오</span></span><span>
</span><span><span class="hljs-title function_ invoke__">mysql_close</span></span><span>(</span><span><span class="hljs-variable">$conn</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
데이터베이스 연결 및 선택 : MySQL_Connect ()를 통해 MySQL 데이터베이스에 연결하고 mysql_select_db ()를 사용하여 사용할 데이터베이스를 선택하십시오.
쿼리 실행 : mysql_query () 를 통해 SQL 쿼리를 실행하고 쿼리 결과를 설정하십시오.
필드 수를 얻으십시오 : mysql_num_fields ()를 사용하여 쿼리 결과 세트에서 필드 수를 얻으십시오.
필드 정보 가져 오기 : mysql_fetch_field ()를 사용하여 쿼리 결과에서 하나씩 필드 정보를 얻으십시오. 각 필드의 이름, 유형, 길이 등과 같은 자세한 정보를 루프하십시오.
연결 : 쿼리를 실행 한 후 MySQL_Close ()를 사용하여 데이터베이스 연결을 닫으십시오.
실제 개발에서 MySQL_Fetch_field () 가 반환 한 필드 유형 정보는 데이터베이스 구조의 이해에 중요합니다. 다음은 일반적인 MySQL 필드 유형입니다.
mysql_type_long : 정수 유형, 일반적으로 int .
mysql_type_string : 문자열 유형, 일반적으로 varchar 또는 텍스트 .
mysql_type_blob : 이진 데이터 유형.
mysql_type_float : 플로팅 유형, 보통 부유물 또는 이중 .
mysql_type_timestamp : 타임 스탬프 유형, 일반적으로 타임 스탬프 .
mysql_fetch_field () 함수는 구식 함수이고 MySQL 확장자가 더 이상 사용되지 않은 것으로 표시되었지만 일부 오래된 프로젝트 나 코드에서는 여전히 일반적인 도구입니다. 이 기사의 소개를 통해이 기능을 사용하여 MySQL 쿼리 결과의 필드 정보를 정확하게 얻고 추가 데이터 처리 및 디스플레이를 위해이 정보를 사용하는 방법을 알 수 있습니다.
새로운 프로젝트를 개발하는 경우 MySQL 확장 대신 MySQLI 또는 PDO를 사용하여 더 나은 기능과 보안 지원을 제공하는 것이 좋습니다.