MySQL 데이터베이스 문자의 구성에는 주로 두 부분이 포함됩니다.
데이터베이스 서버의 기본 문자 세트
클라이언트 연결을위한 문자
문자 세트가 클라이언트와 서버에 맞지 않으면 중국어 코드 및 데이터 삽입 예외와 같은 문제가 발생할 수 있습니다. 따라서 데이터베이스에 연결 한 후 현재 사용되는 문자 세트가 기대치와 일치하는지 확인해야합니다.
mysqli :: charac 이 메소드를 호출함으로써 우리는 연결할 때 사용되는 문자 인코딩을 직관적으로 이해할 수 있습니다.
다음 샘플 코드는 데이터베이스에 연결하는 방법을 보여주고 문자 세트를 설정하고 arribution_set_name 함수를 사용하여 현재 문자 세트를 확인합니다.
<?php
// 만들다 mysqli 물체,데이터베이스에 연결하십시오
$mysqli = new mysqli("gitbox.net", "username", "password", "database_name");
// 연결이 성공했는지 확인하십시오
if ($mysqli->connect_error) {
die("연결이 실패했습니다: " . $mysqli->connect_error);
}
// 클라이언트 연결 문자를 설정하십시오 utf8mb4
$mysqli->set_charset("utf8mb4");
// 현재 연결에서 사용되는 문자 세트를 가져옵니다
$currentCharset = $mysqli->character_set_name();
echo "현재 데이터베이스 연결의 문자 세트는 다음과 같습니다: " . $currentCharset;
// 연결을 닫으십시오
$mysqli->close();
?>
이 예에서 :
도메인 이름 gitbox.net은 연결시 데이터베이스 서버 주소로 사용됩니다.
$ mysqli-> set_charset ( "utf8mb4")을 사용하여 UTF8MB4 로 설정된 문자를 명시 적으로 설정하십시오.
$ mysqli-> charac
출력 결과는 구성이 적용되는지 확인하는 데 도움이됩니다.
일반적으로 UTF8MB4가 코드에 설정되고 arribute_set_name ()에 의해 리턴 된 결과가 UTF8MB4 이면 문자 세트가 올바르게 구성됨을 의미합니다. 그렇지 않으면 문자 세트가 유효하지 않거나 구성이 잘못된 상황이있을 수 있으며 문제 해결이 필요합니다.
데이터베이스 서버 측에서 기본 문자 세트 설정
PHP 코드의 문자 세트 설정 단계가 맞습니까?
데이터베이스 연결 매개 변수가 기본 문자 세트를 덮어 쓰는 지 여부
mysqli :: charac 데이터베이스 연결이 클라이언트와 서버간에 설정된 문자가 일관성이 유지되고 차량이없는 코드 및 데이터 예외를 피하기 위해이 메소드를 호출하는 것이 좋습니다.