Maison >développement back-end >Problème PHP >php écrit des caractères tronqués dans la base de données

php écrit des caractères tronqués dans la base de données

王林
王林original
2019-09-17 13:05:483288parcourir

php écrit des caractères tronqués dans la base de données

Presque tous les développeurs PHP ont rencontré le problème des caractères tronqués. Ci-dessous, nous présentons principalement la solution aux caractères tronqués lors de la connexion à la base de données PHP MySQL. " utf8_general_ci" ou exécutez l'instruction :

CREATE DATABASE `dbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

Lors de la création d'une table de données : Si le champ stocke le chinois, vous devez définir "Organisation" sur : "utf8_general_ci", si le champ stocke l'anglais ou des chiffres. par défaut, c'est bien.
L'instruction SQL correspondante, par exemple :

CREATE TABLE `test` (
`id` INT NOT NULL ,
`name` VARCHAR( 10 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE = MYISAM ;

2 Utilisez PHP pour lire et écrire la base de données

Après vous être connecté à la base de données,

$connection = mysqli_connect($host_name, $host_user, $host_pass);

. rejoindre :

mysqli_query("set character set 'utf8'");//读库
mysqli_query("set names 'utf8'");//写库
peut lire et écrire la base de données MYSQL normalement.
L'environnement créé à l'aide de appserv-win32-2.5.10 utilise le codage utf8 par défaut lors de l'installation de ce package.

Lors de l'écriture du fichier de connexion à la base de données, écrivez :


$conn = mysqli_connect("$host","$user","$password");
mysqli_query("SET NAMES 'UTF8'");
mysqli_select_db("$database",$conn);

Puis lors de la création de la page, faites attention à cette phrase :

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

De cette façon, quel que soit le chinois saisi dans la base de données ou dans l'affichage de la page, tout est normal.
Dans la version DW CS4, la page utf8 est également générée par défaut.
De même, si vous écrivez le fichier de connexion à la base de données comme :

mysqli_query("SET NAMES &#39;GBK&#39;");

, alors la page devrait également changer en conséquence :

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

Le contenu ci-dessus est à titre de référence uniquement !

Tutoriel 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