In der MySQL -Datenbank wird die Funktion mySQLI :: get_charset () verwendet, um den Zeichensatz der aktuellen Verbindung zu erhalten. Wenn wir PDO für Datenbankvorgänge verwenden, bietet PDO keine direkten Funktionen, die MySQLI :: get_charset () ähnlich sind. Wir können jedoch nach wie vor ähnliche Funktionen durch einige von PDO bereitgestellte Methoden implementieren, um den Zeichensatz der derzeit verbundenen Methoden zu erhalten.
Um das aktuelle Zeichen in PDO festzulegen, können wir die folgenden Methoden verwenden:
Holen Sie sich Zeichensatzinformationen durch Abfragen von Variablen wie 'Charakter_Set%' <br> In MySQL können wir die relevanten Informationen über das Zeichen erhalten, das durch Abfragen von Variablen wie 'Charakter_Set%' festgelegt wird. Das Ausführen dieser Abfrage mit PDO kann einen ähnlichen Effekt wie MySQLI :: get_charset () erzielen.
Holen Sie sich die Verbindungseigenschaft Charset
Ein anderer Ansatz besteht darin, die Zeichensatzattribute durch die Konfiguration der PDO -Verbindung zu erhalten. Obwohl dieser Ansatz den angeschlossenen Zeichensatz nicht immer direkt zurückgibt, ist er in einigen Fällen auch nützlich.
Als nächstes werden wir beide Methoden über Code demonstrieren.
<?php
// erstellen PDO verbinden
$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 {
// erstellen PDO Beispiel
$pdo = new PDO($dsn, $username, $password, $options);
// 查询当前verbinden的字符集
$stmt = $pdo->query("SHOW VARIABLES LIKE 'character_set_client'");
$charset = $stmt->fetch(PDO::FETCH_ASSOC);
if ($charset) {
echo 'Der aktuelle Zeichensatz ist:' . $charset['Value'];
} else {
echo 'Charakter kann nicht bekommen';
}
} catch (PDOException $e) {
echo 'verbinden失败: ' . $e->getMessage();
}
?>
<?php
// erstellen PDO verbinden
$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 {
// erstellen PDO Beispiel
$pdo = new PDO($dsn, $username, $password, $options);
// 获取verbinden的字符集
$charset = $pdo->getAttribute(PDO::ATTR_CLIENT_VERSION);
echo '当前verbinden的 MySQL Version: ' . $charset;
} catch (PDOException $e) {
echo 'verbinden失败: ' . $e->getMessage();
}
?>