MySQL 데이터베이스에서 mysqli :: get_charset () 함수는 현재 연결의 문자 세트를 얻는 데 사용됩니다. 데이터베이스 작업에 PDO를 사용하면 PDO는 MySQLI :: get_charset () 과 유사한 기능을 직접 제공하지 않습니다. 그러나 PDO가 제공 한 일부 방법을 통해 유사한 기능을 구현하여 현재 연결된 문자 세트를 얻을 수 있습니다.
PDO에서 현재 문자를 설정하려면 다음 방법을 사용할 수 있습니다.
'문자 _set%'<br>와 같은 표시 변수를 쿼리하여 문자 세트 정보 가져 오기 MySQL에서는 'arribute_set%'와 같은 표시 변수를 쿼리하여 설정 한 문자에 대한 관련 정보를 얻을 수 있습니다. PDO를 사용 하여이 쿼리를 실행하면 mysqli :: get_charset () 과 유사한 효과를 얻을 수 있습니다.
Connection Property Charset을 가져옵니다
또 다른 접근법은 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);
// 查询当前연결하다的字符集
$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();
}
?>
<?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();
}
?>