Dans la base de données MySQL, la fonction MySQLI :: get_charset () est utilisée pour obtenir le jeu de caractères de la connexion actuelle. Lorsque nous utilisons PDO pour les opérations de base de données, l'APD ne fournit pas directement des fonctions similaires à MySqli :: Get_Charset () . Cependant, nous pouvons toujours implémenter des fonctions similaires via certaines méthodes fournies par PDO pour obtenir le jeu de caractères du actuellement connecté.
Pour obtenir le jeu de caractères actuel dans PDO, nous pouvons utiliser les méthodes suivantes:
Obtenez des informations de jeu de caractères en interrogeant des variables d'affichage comme 'caractères_set%' <br> Dans MySQL, nous pouvons obtenir les informations pertinentes sur le jeu de caractères en interrogeant des variables Show comme «caractères_set%» . L'exécution de cette requête à l'aide de l'APD peut obtenir un effet similaire à MySQLI :: get_charset () .
Obtenez le Charset de la propriété de connexion
Une autre approche consiste à obtenir les attributs du jeu de caractères via la configuration de la connexion PDO, et bien que cette approche ne renvoie pas toujours directement le jeu de caractères connecté, il est également utile dans certains cas.
Ensuite, nous démontrerons les deux méthodes via le code.
<?php
// créer PDO connecter
$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 {
// créer PDO Exemple
$pdo = new PDO($dsn, $username, $password, $options);
// 查询当前connecter的字符集
$stmt = $pdo->query("SHOW VARIABLES LIKE 'character_set_client'");
$charset = $stmt->fetch(PDO::FETCH_ASSOC);
if ($charset) {
echo 'Le jeu de caractères actuel est:' . $charset['Value'];
} else {
echo 'Impossible d'obtenir un jeu de caractères';
}
} catch (PDOException $e) {
echo 'connecter失败: ' . $e->getMessage();
}
?>
<?php
// créer PDO connecter
$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 {
// créer PDO Exemple
$pdo = new PDO($dsn, $username, $password, $options);
// 获取connecter的字符集
$charset = $pdo->getAttribute(PDO::ATTR_CLIENT_VERSION);
echo '当前connecter的 MySQL Version: ' . $charset;
} catch (PDOException $e) {
echo 'connecter失败: ' . $e->getMessage();
}
?>