여러 데이터베이스 연결을 관리 할 때는 각 연결의 문자 세트 설정의 일관성을 보장하는 것이 중요합니다. 다른 데이터베이스 연결에는 다른 데이터베이스가 포함될 수 있으며 각 데이터베이스의 문자 세트는 다를 수 있습니다. 문자 세트 불일치로 인한 데이터 읽기 문제 (예 : 차량 코드)를 피하기 위해 MySQLI :: get_charset 함수를 사용하여 문자 세트 설정을 통합 할 수 있습니다.
mysqli :: get_charset 함수는 현재 데이터베이스 연결의 문자 세트 설정을 얻는 데 사용됩니다. 이는 다중 대사 환경 에서이 기능을 사용하여 각 연결이 동일한 문자 세트를 사용하는지 확인하고 확인할 수 있음을 의미합니다.
먼저 PHP의 MySQLI 확장을 통해 데이터베이스 연결을 설정하는 방법을 살펴보고 MySQLI :: get_charset 함수를 사용하여 연결의 문자 세트 설정을 확인하십시오.
<?php
// 데이터베이스 연결을 만듭니다
$mysqli = new mysqli('localhost', 'username', 'password', 'database');
// 연결이 성공했는지 확인하십시오
if ($mysqli->connect_error) {
die('연결이 실패했습니다: ' . $mysqli->connect_error);
}
// 현재 연결된 문자 세트를 얻으십시오
$charset = $mysqli->get_charset();
// 현재 문자 세트를 출력하십시오
echo "현재 문자 세트는입니다: " . $charset->charset;
?>
멀티-다베이스 연결 관리에서는 여러 데이터베이스에 연결할 수 있으며 각 데이터베이스에는 다른 문자 세트가있을 수 있습니다. 문자 세트의 일관성을 보장하기 위해 각 연결에서 문자 세트를 설정하고 MySQLI :: get_charset 함수를 사용하여 올바른 것을 확인할 수 있습니다.
<?php
// 첫 번째 데이터베이스 연결을 만듭니다
$mysqli1 = new mysqli('localhost', 'username', 'password', 'database1');
// 문자를 설정하십시오 utf8
$mysqli1->set_charset('utf8');
// 두 번째 데이터베이스 연결을 만듭니다
$mysqli2 = new mysqli('localhost', 'username', 'password', 'database2');
// 문자를 설정하십시오 utf8
$mysqli2->set_charset('utf8');
// 첫 번째 연결된 문자 세트를 확인하고 확인하십시오
echo "첫 번째 데이터베이스 연결 문자 세트: " . $mysqli1->get_charset()->charset . "<br>";
// 두 번째 연결의 문자 세트를 확인하고 확인하십시오.
echo "두 번째 데이터베이스 연결 문자 세트: " . $mysqli2->get_charset()->charset . "<br>";
?>
mysqli :: set_charset 함수를 사용하면 모든 데이터베이스 연결이 동일한 문자 세트 (예 : UTF8 )를 사용하도록 할 수 있습니다. 그런 다음 mysqli :: get_charset 함수를 사용하여 현재 문자 세트 설정을 확인하여 일관성을 확인하십시오.
멀티-다타베이스 환경에서, 애플리케이션에 URL을 통해 데이터를 검색하고 데이터베이스와 상호 작용하는 애플리케이션 시나리오가있는 경우 URL을 통해 전달 된 데이터가 데이터베이스의 문자 세트와 일치 할 수 있는지 확인해야 할 수도 있습니다. 예를 들어, 링크 주소가 http://example.com/api/data?charset=utf8 을 가리키면 PHP 코드를 사용하여 URL에서 문자 세트 매개 변수를 가져 오고이 매개 변수를 기반으로 데이터베이스 연결의 문자 세트를 조정할 수 있습니다.
원래 URL이 다음과 같습니다.
<?php
$url = 'http://example.com/api/data?charset=utf8';
$parsed_url = parse_url($url);
parse_str($parsed_url['query'], $query_params);
// ~에서 URL 캐릭터 세트를 넣습니다
if (isset($query_params['charset'])) {
$charset_from_url = $query_params['charset'];
echo "~에서 URL 캐릭터 세트를 얻으십시오: " . $charset_from_url . "<br>";
} else {
echo "URL 문자 세트 매개 변수가 설정되지 않았습니다。<br>";
}
?>
M66.NET 도메인 이름 다음에 필요한 코드로 수정하십시오.
<?php
$url = 'http://m66.net/api/data?charset=utf8';
$parsed_url = parse_url($url);
parse_str($parsed_url['query'], $query_params);
// ~에서 URL 캐릭터 세트를 넣습니다
if (isset($query_params['charset'])) {
$charset_from_url = $query_params['charset'];
echo "~에서 URL 캐릭터 세트를 얻으십시오: " . $charset_from_url . "<br>";
} else {
echo "URL 문자 세트 매개 변수가 설정되지 않았습니다。<br>";
}
?>
다중 대사 연결 환경에서는 문자 세트 설정의 균일 성을 유지하는 것이 차량 문제를 피하는 데 중요합니다. mysqli :: set_charset 및 mysqli :: get_charset 함수를 사용하면 각 데이터베이스 연결이 동일한 문자 세트 설정을 사용하도록 할 수 있습니다. 또한 응용 프로그램에 URL을 통해 데이터를 가져오고 URL에 문자 세트 매개 변수가 포함될 수있는 경우 URL 매개 변수를 구문 분석하여 설정된 문자를 동적으로 설정할 수도 있습니다.
이는 시스템의 안정성을 향상시키는 데 도움이 될뿐만 아니라 다른 데이터베이스 간의 데이터 교환이 일관되지 않은 문자 세트로 인해 오류를 유발하지 않도록합니다.