Maison >développement back-end >Problème PHP >Quelle est la raison du problème de code tronqué lorsque PHP se connecte à MySQL ? Comment le résoudre ?

Quelle est la raison du problème de code tronqué lorsque PHP se connecte à MySQL ? Comment le résoudre ?

PHPz
PHPzoriginal
2023-03-27 17:24:47653parcourir

Lorsque nous utilisons PHP pour nous connecter à MySQL, nous rencontrons souvent le problème des caractères tronqués. C'est un gros problème pour nous lors de la rédaction de sites Web multilingues. Avant d’aborder ce problème, nous devons d’abord comprendre les raisons de la formation de caractères tronqués.

1. Raisons des caractères tronqués
Lors de l'utilisation de PHP pour se connecter à MySQL, si le jeu de caractères de MySQL n'est pas cohérent avec le jeu de caractères de PHP, des caractères tronqués apparaîtront. Les raisons spécifiques sont les suivantes :

  1. Le jeu de caractères de MySQL et le jeu de caractères de PHP sont incohérents
    Le jeu de caractères par défaut de MySQL est UTF-8, tandis que le jeu de caractères par défaut de PHP est ISO-8859-1. Si vous ne spécifiez pas de jeu de caractères dans votre code PHP, PHP utilisera le jeu de caractères ISO-8859-1. À ce stade, si les données interrogées depuis MySQL contiennent des caractères UTF-8, des caractères tronqués apparaîtront.
  2. Le jeu de caractères de la table de données MySQL n'est pas cohérent avec le jeu de caractères du serveur MySQL
    Dans MySQL, chaque table de données a un jeu de caractères par défaut. Si le jeu de caractères de la table de données n'est pas cohérent avec le jeu de caractères du serveur MySQL, des caractères tronqués peuvent apparaître.
  3. La façon dont PHP se connecte à MySQL est incorrecte
    Lors de la connexion à MySQL, PHP dispose de diverses méthodes de connexion, telles que mysql_connect, mysqli_connect, PDO, etc. Différentes méthodes de connexion utiliseront différentes méthodes de codage. Si elles sont mal sélectionnées, cela entraînera des problèmes de code tronqué.

2. Résolvez le problème du code tronqué
Pour les raisons ci-dessus, les mesures suivantes peuvent être prises pour résoudre le problème du code tronqué.

  1. Spécifier le jeu de caractères pour PHP
    Dans le code PHP, résolvez le problème des caractères tronqués en spécifiant le jeu de caractères. Vous pouvez utiliser le code suivant :
header('Content-Type:text/html;charset=utf-8');
  1. Modifier le jeu de caractères par défaut MySQL
    Vous pouvez modifier le jeu de caractères par défaut MySQL dans le fichier de configuration MySQL my.cnf. Ouvrez le fichier, recherchez la section [mysqld] et ajoutez le code suivant :
character-set-server=utf8
  1. Modifiez le jeu de caractères de la table de données MySQL
    Vous pouvez modifier le jeu de caractères de la table de données via l'instruction suivante :
ALTER TABLE {table_name} CONVERT TO CHARACTER SET utf8;
  1. Modifiez la façon dont PHP se connecte à MySQL
    Vous pouvez utiliser PDO pour vous connecter à MySQL et spécifier le jeu de caractères lors de la connexion, comme indiqué ci-dessous :
$pdo = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', 'password');

Si vous utilisez mysqli pour vous connecter à MySQL, vous pouvez spécifier le jeu de caractères via le code suivant :

$mysqli = mysqli_connect('localhost', 'root', 'password', 'test');
mysqli_set_charset($mysqli, 'utf8');
  1. Enregistrez le fichier PHP au format d'encodage UTF-8
    Si votre fichier PHP contient des caractères chinois, vous devez enregistrer le fichier au format d'encodage UTF-8 lors de l'enregistrement du fichier, sinon des caractères tronqués apparaîtront.

Pour résumer, le problème tronqué de la connexion PHP à MySQL est un problème très courant, mais tant que vous maîtrisez la solution, vous pouvez facilement le résoudre. J'espère que cet article pourra aider tout le monde.

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