Maison >développement back-end >Problème PHP >Que faire si PHP mysqli chinois est tronqué ?

Que faire si PHP mysqli chinois est tronqué ?

藏色散人
藏色散人original
2021-12-08 09:44:183623parcourir

Solution au code chinois tronqué dans PHP mysqli : 1. Vérifiez et modifiez l'encodage du fichier html ; 2. Modifiez la règle de tri de la base de données mysql en "utf8_general_ci" 3. Ajoutez simplement le paramètre d'encodage avant d'exécuter le SQL ; déclaration.

Que faire si PHP mysqli chinois est tronqué ?

L'environnement d'exploitation de cet article : système Windows 7, PHP version 7.4, ordinateur Dell G3.

Que dois-je faire si PHP mysqli a des caractères chinois tronqués ?

PHP mysqli a ajouté des données avec des erreurs chinoises tronquées

1. L'apparition du problème

Lors de l'utilisation de PHP mysqli pour se connecter à la base de données pour écrire des données, j'ai trouvé que l'écriture. Les caractères chinois entrés dans la base de données sont tronqués. Je suppose que c'est un problème d'encodage.

2. Processus de dépannage

1. Structure du fichier

Nom du fichier Remarques
addbook.html Page Web des données de soumission du formulaire
addbook .php Exécuter l'instruction SQL php file
common.php stocke les données de configuration telles que l'hôte de la base de données mysql

2 Tout d'abord, vérifiez le fichier html et confirmez que <meta charset="UTF-8"&gt. ;< /code><code><meta charset="UTF-8">

3.其次排查了mysql数据库,字符集是 utf8 ,排序规则是 utf8_general_ci

4.最后排查了PHP文件,终于发现了问题

随便打印了一下表单传递的中文数据,发现是没有乱码的,

所以剩下的问题就只能是连接数据库的代码没有弄好编码了。

三、解决办法

重点:在执行SQL语句之前加入设置编码

		   // 设置编码
            mysqli_query($conn,"set names utf8");
            // 执行sql语句
            $rs = mysqli_query($conn,$sql);
            // 关闭流
            mysqli_close($conn);

千万不要把 mysqli_query($conn,"set names utf8");

3. Deuxièmement, j'ai vérifié la base de données mysql. Le jeu de caractères est utf8 et la règle de tri est utf8_general_ci

4. le fichier PHP et j'ai finalement trouvé le problème.

J'ai imprimé au hasard les données chinoises transmises par le formulaire et j'ai constaté qu'il n'y avait pas de code tronqué

Le problème restant ne peut donc être que le code pour se connecter à la base de données n'est pas correctement. codé.

3. Solution Points clés : Ajouter un encodage de paramètres avant d'exécuter l'instruction SQL🎜rrreee🎜Ne jamais mettre mysqli_query($conn, "set noms utf8"); sera toujours invalide s'il est placé après l'exécution de l'instruction SQL. 🎜🎜4. Résumé🎜🎜S'il y a une erreur dans le programme, recherchez-la lentement et soyez patient. Si vous ne trouvez pas l'erreur, vous pouvez la mettre de côté et faire autre chose, et peut-être que vous la découvrirez. 🎜🎜Apprentissage recommandé : "🎜Tutoriel vidéo PHP🎜"🎜🎜🎜

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