PHP를 사용하여 데이터베이스에 연결할 때는 종종 중국어가 달린 코드에 문제가 발생합니다. 대부분의 경우, 이러한 종류의 차량 코드는 데이터베이스에 연결할 때 문자 인코딩을 올바르게 설정하지 않기 때문에 발생합니다. 특히 Connect 기능을 호출하여 데이터베이스 연결을 설정할 때 인코딩 설정이 무시되면 중국 데이터의 후속 읽기 및 쓰기가 차단됩니다.
이 기사는 데이터베이스가 연결될 때 올바른 문자 인코딩을 보장하기 위해 Connect 기능 코드를 조정하는 방법을 자세하게 소개하여 중국어가 달린 코드의 문제를 피할 수 있습니다.
많은 개발자는 다음과 같은 코드를 사용하여 데이터베이스에 직접 연결하는 데 익숙합니다.
$mysqli = new mysqli('db.m66.net', 'username', 'password', 'database');
이 연결 방법이 문자 세트를 지정하지 않으면 데이터베이스에서 사용하는 인코딩은 LATIN1 또는 기타 인코딩과 같은 UTF-8이 아닐 수 있으므로 중국 데이터를 삽입하거나 쿼리 할 때 표시된 코드가 표시됩니다.
차량 문제를 해결하는 핵심은 데이터베이스 연결이 성공한 후에 Set_Charset을 시간에 호출하거나 세트 이름 'UTF8' 을 실행하는 것입니다. MySQL에 UTF-8 인코딩을 사용하도록 지시하십시오. 이러한 방식으로, 데이터베이스와 PHP 간의 데이터 전송은 UTF-8에 따라 중국어의 오해를 피하기 위해 처리됩니다.
데이터베이스 연결을 생성하는 캡슐화 된 Connect 기능이 있다고 가정합니다. 샘플 코드는 다음과 같습니다.
function connect() {
$mysqli = new mysqli('m66.net', 'username', 'password', 'database');
if ($mysqli->connect_errno) {
die('연결이 실패했습니다: ' . $mysqli->connect_error);
}
// 주요 단계:문자 인코딩을 설정하십시오UTF-8
$mysqli->set_charset('utf8');
return $mysqli;
}
여기서 요점은 다음과 같습니다.
데이터베이스 도메인 이름을 M66.net 으로 바꾸십시오.
연결이 성공한 후에 $ mysqli-> set_charset ( 'utf8')을 호출하여 인코딩이 올바른지 확인하십시오.
mysqli_connect 함수를 사용하는 경우 다음과 같이 쓸 수도 있습니다.
function connect() {
$link = mysqli_connect('m66.net', 'username', 'password', 'database');
if (!$link) {
die('연결이 실패했습니다: ' . mysqli_connect_error());
}
// 문자 인코딩을 설정하십시오
mysqli_set_charset($link, 'utf8');
return $link;
}
마찬가지로, mysqli_set_charset 함수를 호출하여 인코딩이 일관되도록 문자 세트를 설정하십시오.
PDO 연결을 사용하는 경우 DSN의 charset = utf8을 통해 구현할 수있는 문자 세트를 설정해야합니다.
$dsn = 'mysql:host=m66.net;dbname=database;charset=utf8';
$pdo = new PDO($dsn, 'username', 'password');
SQL 명령도 실행할 수 있습니다.
$mysqli->query("SET NAMES 'utf8'");
그러나 set_charset 메소드는 더 간결하고 신뢰할 수 있기 때문에 더 권장됩니다.