<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 이 기사의 예는 다음과 같습니다 PHP 사용 mysqli::character_set_name 데이터베이스 연결 문자 세트를 확인하십시오</span></span><span>
</span><span><span class="hljs-comment">// 데이터베이스 연결 매개 변수를 올바르게 구성했는지 확인하십시오.</span></span><span>
</span><span><span class="hljs-variable">$mysqli</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title function_ invoke__">mysqli</span></span><span>(</span><span><span class="hljs-string">"localhost"</span></span><span>, </span><span><span class="hljs-string">"username"</span></span><span>, </span><span><span class="hljs-string">"password"</span></span><span>, </span><span><span class="hljs-string">"database"</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$mysqli</span></span><span>->connect_error) {
</span><span><span class="hljs-keyword">die</span></span><span>(</span><span><span class="hljs-string">"연결이 실패했습니다: "</span></span><span> . </span><span><span class="hljs-variable">$mysqli</span></span><span>->connect_error);
}
</span><span><span class="hljs-comment">// 예상 문자 세트를 설정하십시오</span></span><span>
</span><span><span class="hljs-variable">$expectedCharset</span></span><span> = </span><span><span class="hljs-string">'utf8mb4'</span></span><span>;
</span><span><span class="hljs-variable">$mysqli</span></span><span>-></span><span><span class="hljs-title function_ invoke__">set_charset</span></span><span>(</span><span><span class="hljs-variable">$expectedCharset</span></span><span>);
</span><span><span class="hljs-comment">// 获取当前连接사용的字符集</span></span><span>
</span><span><span class="hljs-variable">$currentCharset</span></span><span> = </span><span><span class="hljs-variable">$mysqli</span></span><span>-></span><span><span class="hljs-title function_ invoke__">character_set_name</span></span><span>();
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"현재 문자 세트: <span class="hljs-subst">$currentCharset</span></span></span><span>\n";
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$currentCharset</span></span><span> === </span><span><span class="hljs-variable">$expectedCharset</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">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"캐릭터 세트 불일치,현재 <span class="hljs-subst">$currentCharset</span></span></span><span>,해야합니다 </span><span><span class="hljs-subst">$expectedCharset</span></span><span>,설정을 확인하십시오。\n";
}
</span><span><span class="hljs-variable">$mysqli</span></span><span>-></span><span><span class="hljs-title function_ invoke__">close</span></span><span>();
</span><span><span class="hljs-meta">?></span></span><span>
------------------------------------------------------------
</span><span><span class="hljs-comment"># 如何사용 mysqli::character_set_name 确认数据库字符集예否与应用캐릭터 세트 매칭?</span></span><span>
개발 중 PHP 신청할 때,캐릭터 세트 문제는 데이터의 올바른 읽기, 쓰기 및 표시에 영향을 미치는 일반적인 문제 중 하나입니다.。특히 다국어 컨텐츠와 관련하여,일관되지 않은 문자 세트는 차량 코드로 이어질 수 있습니다、데이터 손실 및 심지어 보안 위험。그러므로,함께 MySQL 데이터베이스 연결이 설정된 후,确认当前사용的字符集예否与应用期望的一致,매우 중요한 단계입니다。
</span><span><span class="hljs-comment">## 무엇인가요 `mysqli::character_set_name`?</span></span><span>
`mysqli::</span><span><span class="hljs-title function_ invoke__">character_set_name</span></span><span>()` 예 PHP `mysqli` 수업의 방법,它返回当前数据库连接所사용的字符集名称。이 방법으로,我们可以方便地确认当前连接实际사용的字符集,오해 문제를 피하십시오。
</span><span><span class="hljs-comment">## 사용方法</span></span><span>
데이터베이스 연결을 성공적으로 설정 한 후에이 방법을 호출 할 수 있습니다.。以下예一个基础的사용示例:
```php
</span><span><span class="hljs-variable">$mysqli</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title function_ invoke__">mysqli</span></span><span>(</span><span><span class="hljs-string">"localhost"</span></span><span>, </span><span><span class="hljs-string">"user"</span></span><span>, </span><span><span class="hljs-string">"password"</span></span><span>, </span><span><span class="hljs-string">"database"</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$mysqli</span></span><span>->connect_error) {
</span><span><span class="hljs-keyword">die</span></span><span>(</span><span><span class="hljs-string">"연결이 실패했습니다: "</span></span><span> . </span><span><span class="hljs-variable">$mysqli</span></span><span>->connect_error);
}
</span><span><span class="hljs-variable">$charset</span></span><span> = </span><span><span class="hljs-variable">$mysqli</span></span><span>-></span><span><span class="hljs-title function_ invoke__">character_set_name</span></span><span>();
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"当前사용的字符集예: <span class="hljs-subst">$charset</span></span></span><span>";
</span></span>
기본적으로 MySQLI는 LATIN1 문자 세트를 사용하며, 이는 종종 현대 응용 분야 (특히 중국어)의 요구를 충족시키지 못합니다. 따라서 일반적으로 UTF8MB4 와 같은 문자 세트를 수동으로 설정해야합니다.
<span><span><span class="hljs-variable">$mysqli</span></span><span>-></span><span><span class="hljs-title function_ invoke__">set_charset</span></span><span>(</span><span><span class="hljs-string">"utf8mb4"</span></span><span>);
</span></span>
설정 후 문자 _set_name ()을 호출하여 설정이 효과적인지 확인하십시오.
실제 애플리케이션에서는 문자 세트 매칭을 자동으로 감지하기 위해 논리 코드를 작성하는 것이 좋습니다.
<span><span><span class="hljs-variable">$expectedCharset</span></span><span> = </span><span><span class="hljs-string">'utf8mb4'</span></span><span>;
</span><span><span class="hljs-variable">$mysqli</span></span><span>-></span><span><span class="hljs-title function_ invoke__">set_charset</span></span><span>(</span><span><span class="hljs-variable">$expectedCharset</span></span><span>);
</span><span><span class="hljs-variable">$currentCharset</span></span><span> = </span><span><span class="hljs-variable">$mysqli</span></span><span>-></span><span><span class="hljs-title function_ invoke__">character_set_name</span></span><span>();
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$currentCharset</span></span><span> !== </span><span><span class="hljs-variable">$expectedCharset</span></span><span>) {
</span><span><span class="hljs-comment">// 오류를 기록하거나 경고를 발행하십시오</span></span><span>
</span><span><span class="hljs-title function_ invoke__">error_log</span></span><span>(</span><span><span class="hljs-string">"캐릭터 세트 불일치: 현재 <span class="hljs-subst">$currentCharset</span></span></span><span>,해야합니다 </span><span><span class="hljs-subst">$expectedCharset</span></span><span>");
}
</span></span>
MySQL은 UTF8을 제공하지만 실제로 전체 UTF-8 문자 세트 (최대 3 바이트 인코딩)를 지원하지는 않지만 UTF8MB4는 이모티콘과 같은 4 바이트 문자를 포함하여 전체 UTF-8을 지원합니다. 따라서 최신 웹 애플리케이션에서 UTF8MB4를 사용하는 것이 좋습니다.
mysqli :: aircains_set_name ()을 사용하는 것은 데이터베이스 연결의 실제 문자 세트를 확인하는 간단하고 효율적인 방법입니다. 일관되지 않은 인코딩으로 인한 문제를 피하기 위해 문자 세트를 설정 한 직후에 확인하십시오. 그것과 협력하는 것은 데이터베이스 테이블 구조 정의, HTTP 인코더 등으로, 데이터의 올바른 스토리지 및 표시를 보장하기 위해 동일한 문자 세트로 일관되게 설정해야합니다.
<span></span>
관련 태그:
mysqli