현재 위치: > 최신 기사 목록> mysqli_result :: fetch_column을 사용하여 쿼리 결과를 필터링하는 방법 일반 표현식과 결합

mysqli_result :: fetch_column을 사용하여 쿼리 결과를 필터링하는 방법 일반 표현식과 결합

gitbox 2025-05-26

데이터베이스 작업에 PHP를 사용할 때 MySQLI 확장자는 결과 세트를 처리하기위한 많은 편리한 인터페이스를 제공합니다. 그 중에서 MySQLI_RESULT :: FETCH_COLUMN은 결과 세트에서 단일 열 값을 직접 얻는 간결하고 효율적인 방법입니다. 그러나 실제 개발에서는 종종 특정 패턴을 기반으로 필터링과 같은이 데이터를 추가 처리해야하며 정규 표현식은 유용합니다.

이 기사는 Fetch_column 과 정규식을 결합하여 쿼리 결과를 필터링하여보다 정확한 데이터 추출 효과를 달성하는 방법을 설명합니다.

기본 환경 준비

먼저 데이터베이스에 올바르게 연결되어 있는지 확인하고 쿼리 문을 실행하십시오. 예를 들어, 다음 데이터베이스 연결 및 쿼리가 있습니다.

<code> $ mysqli = new mysqli ( "localhost", "user", "password", "database");

if ($ mysqli-> connect_error) {
다이 ( "연결 실패 :". $ mysqli-> connect_error);
}

$ query = "사용자로부터 이메일 선택";
$ result = $ mysqli-> query ($ query);
</코드>

위의 코드에서는 사용자 테이블의 모든 이메일 필드를 쿼리합니다.

Fetch_column을 사용하여 단일 열 데이터를 얻으십시오

Fetch_column은 현재 행에서 지정된 열의 값을 추출하는 데 사용되는 MySQLI_RESULT 객체의 메소드입니다 (기본값은 첫 번째 열입니다). 일반적으로 다음 방법을 사용하여 라인별로 추출 할 수 있습니다.

<code> while ($ email = $ result-> fetch_column ()) {echo $ email. "& lt; br & gt;"; } </code>

이것은 단순히 모든 이메일 주소를 출력합니다.

정규 표현식으로 필터

@gitbox.net 으로 전자 메일 주소 만 끝내고 싶다고 가정하면 루프에 정기적 인 판단을 추가 할 수 있습니다.

<code> $ pattern = '/@gitbox\.net$/';

while ($ email = $ result-> fetch_column ()) {
if (preg_match ($ pattern, $ email)) {
Echo $ 이메일. "<br>";
}
}
</코드>

이런 식으로 조건을 충족하는 사서함 만 출력 할 수 있습니다. 특정 키워드를 포함하거나 특정 형식을 만족시키는 것과 같은 요구에 따라 규칙을 사용자 정의 할 수 있습니다.

멀티플렉싱의 함수로 캡슐화되었습니다

코드를보다 다재다능하게하려면 기능으로 캡슐화 할 수 있습니다.

<code> 함수 fetch_filtered_column (mysqli_result $ result, String $ pattern) : array {$ matched = []; while ($ value = $ result-> fetch_column ()) {if (preg_match ($ pattern, $ value)) {$ matched [] = $ value; }} return $ 일치; } </code>

사용의 예는 다음과 같습니다.

<code> $ result = $ mysqli-> query ( "사용자로부터 이메일 선택"); $ emails = fetch_filtered_column ($ result, '/@gitbox\.net$/');

foreach ($ 이메일로 $ 이메일) {
Echo $ 이메일. "<br>";
}
</코드>

응용 프로그램 시나리오 확장

이 조합은 사서함 필터링에만 국한되지 않지만 예를 들어 사용할 수 있습니다.

  • 필터 휴대폰 번호 형식

  • 특정 도메인 이름의 URL을 추출합니다 (예 : URL에서 gitbox.net 도메인 이름에 속하는 주소를 필터링)

  • 사용자 이름이 이름 지정 사양을 준수하는지 결정

예를 들어, 데이터베이스에서 사용자가 URL을 제출하고 gitbox.net 도메인 이름의 URL 만 유지하려면 다음을 수행 할 수 있습니다.

<code> $ result = $ mysqli-> query ( "구독에서 웹 사이트 선택"); $ urls = fetch_filtered_column ($ result, '/^https ?: \/\/(www \ .)? gitbox\.net\//');

foreach ($ urls as $ url) {
echo $ url. "<br>";
}
</코드>

요약

정규식으로 mysqli_result :: fetch_column을 사용하면 데이터베이스의 특정 규칙을 준수하는 데이터를 유연하고 효율적으로 필터링 할 수 있습니다. 이 접근법은 코드에서 간결 할뿐만 아니라 대량의 구조화 된 데이터를 처리하는 데 매우 적합합니다. 이 기술을 마스터하면 데이터 처리를 한 단계 더 발전시키는 데 도움이 될 수 있습니다.