Dans PHP, les paramètres de jeu de caractères sont cruciaux pour le traitement correct de la base de données lors du fonctionnement d'une base de données MySQL. Le jeu de caractères correct peut éviter le code brouillé et assurer le stockage et la récupération corrects des données. mysqli :: get_charset et mysqli_query ("set les noms ...") sont les deux façons de gérer les ensembles de caractères, mais leurs fonctions et leur utilisation sont différentes. Cet article comparera les différences et les scénarios applicables des deux en détail.
MySQLI :: Get_Charset est une méthode dans l'extension MySQLI pour obtenir le jeu de caractères du actuellement connecté. Il ne modifie pas le jeu de caractères, mais renvoie les informations de jeu de caractères utilisées par la connexion de la base de données actuelle.
$charset = $mysqli->get_charset();
Cette méthode renvoie un objet contenant des informations de jeu de caractères, qui contient le contenu suivant:
Charset : le nom du jeu de caractères actuellement utilisé.
Collation : les règles de relecture pour le jeu de caractères actuel.
<?php
$mysqli = new mysqli("localhost", "username", "password", "database");
if ($mysqli->connect_error) {
die("Connection failed: " . $mysqli->connect_error);
}
$charset = $mysqli->get_charset();
echo "Jeu de caractères actuel: " . $charset->charset . "<br>";
echo "Règles actuelles de relecture: " . $charset->collation . "<br>";
$mysqli->close();
?>
MySQLI :: Get_Charset est principalement utilisé pour vérifier le jeu de caractères utilisé par la connexion actuelle dans le programme. Ceci est très utile pour le débogage ou la journalisation, en particulier lorsque plusieurs connexions et modification des jeux de caractères.
SET NAMES est une instruction SQL utilisée pour configurer le jeu de caractères des connexions après avoir établi une connexion à une base de données MySQL. Ce paramètre affecte toutes les requêtes et échanges de données ultérieurs sur la connexion, garantissant la cohérence du jeu de caractères.
mysqli_query($conn, "SET NAMES 'charset_name'");
où Charset_name est le nom du jeu de caractères à définir (par exemple UTF8 ou UTF8MB4 ).
<?php
$mysqli = new mysqli("localhost", "username", "password", "database");
if ($mysqli->connect_error) {
die("Connection failed: " . $mysqli->connect_error);
}
// Définissez le jeu de caractères sur utf8mb4
mysqli_query($mysqli, "SET NAMES 'utf8mb4'");
// Confirmer les paramètres du jeu de caractères
$result = $mysqli->query("SHOW VARIABLES LIKE 'character_set_client'");
$row = $result->fetch_assoc();
echo "Jeu de caractères actuel设置: " . $row['Value'] . "<br>";
$mysqli->close();
?>
L'instruction SET NOMS convient pour s'assurer que le jeu de caractères de la connexion de la base de données est défini sur la valeur spécifiée après chaque connexion. Surtout lorsqu'il s'agit de différentes données codées, il est important de s'assurer que le jeu de caractères est cohérent. Par exemple, lorsque les données stockées dans la base de données sont codées à l'aide de l'UTF-8, les noms «UTF8MB4» doivent être utilisés pour assurer la cohérence des caractéristiques et éviter le code brouillé lors de l'insertion de données.
mysqli :: get_charset : est utilisé uniquement pour obtenir le jeu de caractères de la connexion actuelle et ne modifiera aucun paramètre. Il est utilisé pour vérifier l'état actuel du jeu de caractères.
mysqli_query ("set names ...") : utilisé pour définir le jeu de caractères de la connexion actuelle. Cette commande garantit que les requêtes ultérieures sont codées et décodées à l'aide du jeu de caractères spécifié.
mysqli :: get_charset : est généralement utilisé lorsque vous devez obtenir et confirmer le jeu de caractères actuel, tel que le débogage ou la journalisation.
MySQLI_Query ("Set Names ...") : Habituellement, le jeu de caractères est défini immédiatement après la connexion à la base de données, en particulier lorsque l'insertion de données ou la mise à jour, garantissant la cohérence du jeu de caractères.
mysqli :: get_charset : aucune instruction SQL n'est requise lors de l'appel, il est directement accessible via l'objet de connexion.
MySQLI_Query ("Set Names ...") : Une instruction SQL doit être exécutée, adaptée aux scénarios où les requêtes de base de données sont exécutées.
L'utilisation de mysqli :: get_charset peut facilement obtenir les informations de jeu de caractères de la connexion actuelle, qui convient au débogage ou à la vérification d'un jeu de caractères.
Utilisez MySQLI_Query ("Set Names ...") pour définir le jeu de caractères après la connexion de la base de données, en vous assurant que toutes les requêtes suivantes utilisent le jeu de caractères correct.
Peu importe la méthode que vous choisissez, elle doit être décidée en fonction des besoins réels. De manière générale, la configuration des ensembles de caractères après la connexion à une base de données est généralement recommandée pour assurer l'intégrité et l'exactitude des données. MySQLI :: Get_Charset est plus utilisé pour vérifier ou confirmer l'état du jeu de caractères de la connexion.