현재 위치: > 최신 기사 목록> pdo에서 mysqli :: get_charset 함수와 유사한 함수를 구현하는 방법?

pdo에서 mysqli :: get_charset 함수와 유사한 함수를 구현하는 방법?

M66 2025-06-15

MySQL 데이터베이스에서 mysqli :: get_charset () 함수는 현재 연결의 문자 세트를 얻는 데 사용됩니다. 데이터베이스 작업에 PDO를 사용하면 PDO는 MySQLI :: get_charset () 과 유사한 기능을 직접 제공하지 않습니다. 그러나 PDO가 제공 한 일부 방법을 통해 유사한 기능을 구현하여 현재 연결된 문자 세트를 얻을 수 있습니다.

PDO를 사용하여 데이터베이스 문자 세트를 얻습니다

PDO에서 현재 문자를 설정하려면 다음 방법을 사용할 수 있습니다.

  1. '문자 _set%'<br>와 같은 표시 변수를 쿼리하여 문자 세트 정보 가져 오기 MySQL에서는 'arribute_set%'와 같은 표시 변수를 쿼리하여 설정 한 문자에 대한 관련 정보를 얻을 수 있습니다. PDO를 사용 하여이 쿼리를 실행하면 mysqli :: get_charset () 과 유사한 효과를 얻을 수 있습니다.

  2. Connection Property Charset을 가져옵니다
    또 다른 접근법은 PDO 연결의 구성을 통해 문자 세트 속성을 얻는 것입니다.이 접근법이 항상 연결된 문자 세트를 직접 반환하는 것은 아니지만 경우에 따라 유용합니다.

다음으로 코드를 통해 두 가지 방법을 모두 시연 할 것입니다.

샘플 코드

방법 1 : SQL 쿼리를 통해 문자를 설정합니다

 <?php
// 만들다 PDO 연결하다
$dsn = 'mysql:host=m66.net;dbname=testdb;charset=utf8';
$username = 'root';
$password = '';
$options = array(
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
);

try {
    // 만들다 PDO 예
    $pdo = new PDO($dsn, $username, $password, $options);

    // 查询当前연결하다的字符集
    $stmt = $pdo->query("SHOW VARIABLES LIKE 'character_set_client'");
    $charset = $stmt->fetch(PDO::FETCH_ASSOC);

    if ($charset) {
        echo '현재 문자 세트는입니다:' . $charset['Value'];
    } else {
        echo '캐릭터 세트를 얻을 수 없습니다';
    }
} catch (PDOException $e) {
    echo '연결하다失败: ' . $e->getMessage();
}
?>

방법 2 : PDO 연결 속성을 통해 설정된 문자 얻기

 <?php
// 만들다 PDO 연결하다
$dsn = 'mysql:host=m66.net;dbname=testdb;charset=utf8';
$username = 'root';
$password = '';
$options = array(
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
);

try {
    // 만들다 PDO 예
    $pdo = new PDO($dsn, $username, $password, $options);

    // 获取연결하다的字符集
    $charset = $pdo->getAttribute(PDO::ATTR_CLIENT_VERSION);
    
    echo '当前연결하다的 MySQL 버전: ' . $charset;
} catch (PDOException $e) {
    echo '연결하다失败: ' . $e->getMessage();
}
?>