Maison >développement back-end >Problème PHP >Comment définir l'encodage de la base de données en php

Comment définir l'encodage de la base de données en php

PHPz
PHPzoriginal
2023-03-29 10:08:55639parcourir

PHP est un langage de programmation côté serveur largement utilisé pour créer des applications Web. En PHP, les développeurs doivent souvent utiliser des bases de données pour stocker et récupérer des données. Lors de l’utilisation d’une base de données, il y a un problème très important à prendre en compte, à savoir l’encodage de la base de données. Dans cet article, nous expliquerons comment PHP définit l'encodage de la base de données et pourquoi la définition de l'encodage est importante.

Qu'est-ce que l'encodage de base de données ?

L'encodage de base de données fait référence à la manière dont les caractères sont stockés et traités dans une base de données. Différentes bases de données ont différentes méthodes de codage. Les méthodes de codage courantes incluent UTF-8, GB2312, GBK, BIG5, etc. Lorsque vous utilisez PHP pour exploiter une base de données, vous devez choisir la bonne méthode de codage pour garantir l'exactitude du stockage et de la récupération des données.

Pourquoi est-il important de définir l'encodage de la base de données ?

Si l'encodage de la base de données et l'encodage de l'application sont incohérents, des problèmes surviendront lors du processus de stockage et de récupération des données. Par exemple, si l'application utilise le codage UTF-8 et que la base de données utilise le codage GB2312, lorsque les données sont insérées dans la base de données, les caractères chinois seront convertis en caractères étranges ou en caractères tronqués. Lors de la lecture des données, la lecture peut échouer en raison d'un codage incohérent, ou les données lues peuvent être incomplètes ou les informations peuvent être inexactes.

Comment définir l'encodage de la base de données

Il existe deux façons de définir l'encodage de la base de données MySQL en PHP La première consiste à définir la méthode d'encodage de la connexion à la base de données lors de la connexion à MySQL, c'est-à-dire en appelant la fonction MySQL mysql_set_charset(. ) pour définir la méthode de codage ; la seconde consiste à définir la méthode de codage lors de l'écriture de SQL. Spécifiez la méthode de codage lors de l'exécution de l'instruction, c'est-à-dire ajoutez l'instruction SET NAMES avant l'instruction de requête. Ci-dessous, nous expliquerons respectivement l’utilisation de ces deux méthodes.

Méthode 1 : fonction mysql_set_charset()

La fonction mysql_set_charset() est la fonction intégrée de PHP pour définir l'encodage de la base de données MySQL. Cette fonction peut définir directement la méthode de codage de la base de données après avoir établi une connexion à la base de données. Voici un exemple simple :

<?php
$link = mysql_connect(&#39;localhost&#39;, &#39;root&#39;, &#39;123456&#39;);
mysql_set_charset(&#39;utf8&#39;, $link);
mysql_select_db(&#39;test&#39;, $link);
?>

Dans l'exemple ci-dessus, nous utilisons la fonction mysql_connect() pour nous connecter à la base de données MySQL, puis utilisons la fonction mysql_set_charset() pour définir le jeu de caractères afin de maintenir la connexion avec la base de données MySQL. en utf8. Enfin, la base de données de test est sélectionnée pour fonctionner à l'aide de la fonction mysql_select_db(). De cette façon, vous pouvez vous assurer que le jeu de caractères entre PHP et la base de données MySQL est toujours cohérent, évitant ainsi la génération de caractères tronqués.

Méthode 2 : utilisez l'instruction SET NAMES

L'instruction SET NAMES est une commande MySQL utilisée pour définir le jeu de caractères du client. En PHP, nous pouvons utiliser l'instruction SET NAMES pour définir l'encodage de la base de données MySQL. Voici un exemple d'utilisation de l'instruction SET NAMES :

<?php
$link = mysql_connect(&#39;localhost&#39;, &#39;root&#39;, &#39;123456&#39;);
mysql_query(&#39;SET NAMES utf8&#39;, $link);
mysql_select_db(&#39;test&#39;, $link);
?>

Dans l'exemple ci-dessus, nous utilisons la fonction mysql_connect() pour nous connecter à la base de données MySQL, puis utilisons la fonction mysql_query() pour exécuter l'instruction SET NAMES utf8 pour définissez le jeu de caractères de connexion sur utf8. Enfin, la base de données de test est sélectionnée pour fonctionner à l'aide de la fonction mysql_select_db().

Il convient de noter que l'instruction SET NAMES doit être exécutée avant d'exécuter toute instruction SQL, sinon cela pourrait provoquer des erreurs de codage. Par conséquent, lors de l'écriture d'un programme PHP, vous devez vous assurer que l'instruction SET NAMES est la première instruction SQL après la connexion de PHP à la base de données MySQL.

Résumé

En PHP, il est très important de définir correctement l'encodage de la base de données. Il existe deux façons de définir la méthode d'encodage de la base de données MySQL en PHP. L'une consiste à définir la méthode d'encodage de la connexion à la base de données lors de la connexion à MySQL, c'est-à-dire d'utiliser la fonction mysql_set_charset() ; lors de l'écriture de l'instruction SQL, c'est-à-dire, ajoutez SET avant l'instruction de requête NAMES. En définissant correctement le codage de la base de données, vous pouvez éviter les caractères tronqués lors du stockage et de la récupération des données et garantir l'intégrité et l'exactitude des données.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn