MySQLデータベースでは、 MySQLI :: get_charset()関数を使用して、現在の接続の文字セットを取得します。データベース操作にPDOを使用する場合、PDOはmysqli :: get_charset()と同様の関数を直接提供しません。ただし、PDOが提供するいくつかの方法を使用して、現在接続されている文字セットを取得するために、同様の機能を実装することができます。
PDOで現在の文字を設定するには、次の方法を使用できます。
「character_set%」のようなショー変数をクエリすることにより、文字セット情報を取得します<br> MySQLでは、 「Character_set%」などのショー変数をクエリすることにより、文字セットに関する関連情報を取得できます。 PDOを使用してこのクエリを実行すると、mysqli :: get_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();
}
?>