fetch_column은 배열을 통해 필드 이름 또는 필드 인덱스에 액세스하지 않고 결과 세트의 열을 직접 가져올 수있는 mysqli_result 클래스의 메소드입니다. 이로 인해 코드가 더 간결하게 만들어지고 특히 하나의 데이터 열만 필요한 시나리오에 적합합니다.
예:
<code> $ mysqli = new mysqli ( "localhost", "user", "password", "database"); $ result = $ mysqli-> query ( "제품에서 설명 선택"); while ($ description = $ result-> fetch_column ()) {
echo $ 설명. "<br>";
}
</코드>
데이터베이스의 내용이 항상 깔끔한 것은 아닙니다. 특히 광범위한 데이터 소스 또는 사용자가 입력 할 수있는 시스템에서는 다음과 같은 문제가 종종 포함됩니다.
라인 브레이크 ( \ n , \ r \ n )
탭 문자 ( \ t )
여분의 공간
특별한 HTML 문자
보이지 않는 제어 문자
이 문자는 프론트 엔드 디스플레이, 파일 생성 또는 전송 중에 형식의 오류 또는 혼란을 유발할 수 있습니다. 따라서 이러한 문자를 청소하는 것은 매우 필요한 단계입니다.
str_replace는 지정된 문자를 대체하거나 문자열의 하위 문자열을 대체하는 함수입니다. 위의 특수 문자를 삭제하거나 교체하는 데 사용할 수 있습니다.
다음은 데이터베이스 필드를 읽고 특수 문자를 정리하는 방법을 보여주는 완전한 예입니다.
<code> $ mysqli = new mysqli ( "localhost", "user", "password", "database"); if ($ mysqli-> connect_errno) {die ( "연결 실패 :". $ mysqli-> connect_error); } $ SQL = "제품에서 설명 선택";
$ result = $ mysqli-> query ($ sql);
$ cleaned_descriptions = [];
$ search = [ "\ r \ n", "\ n", "\ r", "\ t", ""];
$ 대체 = [ "", "", "," "," "," "]; // 단일 공간으로 교체하십시오
while ($ raw_text = $ result-> fetch_column ()) {
$ cleaned = str_replace ($ search, $ replace, $ raw_text);
$ cleaned_descriptions [] = trim ($ cleaned);
}
foreach ($ cleaned_descriptions as $ text) {
echo htmlspecialchars ($ 텍스트). "<br>";
}
</코드>
이 예에서는 청소 해야하는 문자를 정의하고 배치를 STR_REPLATE 로 교체 한 다음 Trim ()을 사용하여 이전 및 후속 추가 공간을 제거하고 마지막으로 htmlspecialchars를 사용하여 XSS 공격을 방지합니다.
이 방법은 다음 시나리오에 매우 적합합니다.
전자 상거래 플랫폼의 제품 설명 필드 청소;
CMS 시스템에서 기사 본문 형식의 표준화;
사용자 의견 및 피드백 내용 필터링;
JSON 또는 XML로 내보내기 전에 전처리와 같은 깨끗한 데이터 내보내기 텍스트를 생성하십시오.
예를 들어 Gitbox.net의 제품 관리 시스템에서 다른 시스템 호출에 대해 깨끗한 제품 설명을 내보내야합니다. 위의 코드를 사용하여 프론트 엔드 디스플레이 또는 인터페이스 전송의 오류를 피하기 위해 라인 브레이크 및 탭이 포함 된 컨텐츠를 정리할 수 있습니다.