Maison > base de données > tutoriel mysql > le corps du texte

Explication détaillée de la différence entre les caractères pleine chasse et les caractères demi-chasse stockés dans MySQL

黄舟
Libérer: 2017-05-28 09:55:22
original
3049 Les gens l'ont consulté

Cet article présente principalement les informations pertinentes sur la différence entre MySQL stockant des caractères pleine chasse et des caractères demi-chasse. Les amis dans le besoin peuvent s'y référer

Malheureusement, lorsque l'entreprise. testait la messagerie instantanée en interne. Lorsque vous rencontrez une erreur MYSQL_DATA_TRUNCATED, l'enregistrement du journal apparaît toujours lorsque mysql_stmt_fetch est appelé. Compte tenu de l'expérience précédente, cela devrait être dû à la longueur insuffisante de la zone de liaison de l'ensemble de résultats donné. Je l'ai vérifié plusieurs fois et n'ai trouvé aucun problème. J'ai des relations correspondantes dans mon code, telles que char(20). Dans mon code, je définirai char buffer[20]array pour le stockage. Cela a l’air si juste et parfait. Je n'avais pas d'autre choix que d'imprimer chaque ligne de données, de rechercher la ligne d'enregistrements dans laquelle l'erreur avait été signalée et de constater que la police était différente des autres. Par exemple :

123456789 (demi-largeur)
123456789 (pleine largeur)

Ceci n'est pas contrôlé par ma saisie d'espaces, mais par la pleine largeur et méthode de saisie demi-largeur. Pour les caractères pleine chasse, c'est deux fois la longueur des caractères demi-chasse, et mon MySQL utilise utf-8, donc dans la base de données, il s'agit d'un caractère pleine chasse de 3 octets.

select length(column) from table_name where…;

Utilisez-le pour imprimer la longueur et vous pourrez en juger. À ce stade, vous devez considérer le problème de la correspondance entre la longueur du type dans le code et la longueur du champ de la base de données, comme les caractères pleine chasse ou les caractères chinois. Char(20) dans la base de données représente 20 caractères, et non 20 octets. Veuillez noter ici que lors de la récupération de données, n'utilisez pas les 20 comme longueur du jeu de résultats pour récupérer les 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!

Étiquettes associées:
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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!