Maison > développement back-end > Problème PHP > Comment résoudre le problème des caractères tronqués lorsque les données PHP sont enregistrées dans la base de données

Comment résoudre le problème des caractères tronqués lorsque les données PHP sont enregistrées dans la base de données

PHPz
Libérer: 2023-04-06 10:38:02
original
627 Les gens l'ont consulté

Dans le processus de développement PHP, la sauvegarde des données dans la base de données est souvent impliquée. Cependant, il arrive parfois que des caractères soient tronqués lors de l'enregistrement des données dans la base de données. Cet article se concentrera sur le problème des caractères tronqués lors de l'enregistrement des données PHP dans la base de données et sur la façon de le résoudre.

1. Cause du problème

Lorsque PHP met à jour la base de données MySQL, si les jeux de caractères de PHP et MySQL sont incohérents, des caractères tronqués peuvent apparaître. Pour résoudre ce problème, le jeu de caractères correct doit être spécifié dans le code.

Deuxième solution

  1. Modifier le jeu de caractères de la base de données MySQL
  • Première méthode : modifier le jeu de caractères dans la base de données MySQL

Vous pouvez modifier le jeu de caractères dans la base de données MySQL via la commande suivante

SET NAMES 'utf8mb4';
Copier après la connexion

Ceci La commande est uniquement pour la connexion actuelle. Si elle doit être modifiée de manière permanente, elle doit être modifiée dans le fichier de configuration MySQL. La méthode de modification est la suivante :

[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
Copier après la connexion
  • Méthode 2 : Modifier le jeu de caractères lors de la connexion du code PHP à la base de données

Ajouter un code lors de la connexion à la base de données :

mysqli_set_charset($mysqli, "utf8mb4");
Copier après la connexion
  1. Modifier l'encodage des caractères en PHP

Utilisation en PHP La fonction header() peut définir l'en-tête http, comme suit : header()可以设置http头,如下:

header("Content-type:text/html;charset=utf-8");
Copier après la connexion

这样设置后所有输出到浏览器的字符集都是 utf-8 的。

在 PHP 中,还可以指定数据保存到数据库的编码方式:

mysqli_query($link, "SET NAMES 'utf8mb4'");
Copier après la connexion

其中,$link

CREATE TABLE `mytable`(`id` INT, `name` VARCHAR(50)) DEFAULT CHARSET=utf8mb4;
Copier après la connexion
Après ce paramètre, tous les jeux de caractères envoyés au navigateur sont utf-8.
  1. En PHP, vous pouvez également spécifier la méthode d'encodage pour enregistrer les données dans la base de données :
  2. <meta charset="UTF-8">
    Copier après la connexion
Parmi eux, $link est l'objet qui se connecte à la base de données MySQL.

    Vérifiez le jeu de caractères de la table de données
Lors de la création de la table de données, vous devez spécifier le jeu de caractères :

rrreee

Spécifiez le jeu de caractères dans la page Web

Ajoutez le code suivant à l'en-tête du html :

rrreee

Comme ceci Après le réglage, tous les jeux de caractères affichés sont UTF-8. 🎜🎜Résumé : 🎜🎜Bien que le problème de confusion des données PHP enregistrées dans la base de données soit relativement courant, en fait, tant que la cause du problème est comprise, il peut être facilement résolu grâce aux solutions ci-dessus. Dans le même temps, le jeu de caractères utf8mb4 doit être utilisé autant que possible pendant le développement. 🎜

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal