Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk menyelesaikan masalah aksara bercelaru apabila data php disimpan ke pangkalan data

Bagaimana untuk menyelesaikan masalah aksara bercelaru apabila data php disimpan ke pangkalan data

PHPz
PHPzasal
2023-04-06 09:12:45632semak imbas

Dalam proses pembangunan PHP, menyimpan data ke pangkalan data selalunya terlibat. Walau bagaimanapun, kadangkala akan terdapat aksara yang bercelaru apabila menyimpan data ke pangkalan data. Artikel ini akan menumpukan pada masalah aksara bercelaru apabila menyimpan data PHP ke pangkalan data, serta penyelesaiannya.

1. Punca masalah

Apabila PHP mengemas kini pangkalan data MySQL, jika set aksara PHP dan MySQL tidak konsisten, aksara bercelaru mungkin berlaku. Untuk menangani isu ini, set aksara yang betul perlu dinyatakan dalam kod.

2. Penyelesaian

  1. Ubah suai set aksara pangkalan data MySQL
  • Kaedah 1: Ubah suai set aksara dalam pangkalan data MySQL

Anda boleh mengubah suai set aksara dalam pangkalan data MySQL melalui arahan berikut

SET NAMES 'utf8mb4';

Arahan ini hanya sah untuk sambungan semasa Jika pengubahsuaian kekal diperlukan, ia perlu diubah suai dalam fail konfigurasi MySQL. Kaedah pengubahsuaian adalah seperti berikut:

[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
  • Kaedah 2: Ubah suai set aksara apabila kod php bersambung ke pangkalan data

Hanya tambah kod semasa menyambung ke pangkalan data:

mysqli_set_charset($mysqli, "utf8mb4");
  1. Ubah suai pengekodan aksara dalam PHP

Gunakan fungsi header() dalam PHP untuk menetapkan pengepala http, seperti berikut:

header("Content-type:text/html;charset=utf-8");

Tetapkannya seperti ini Semua output set aksara ke penyemak imbas adalah UTF-8.

Dalam PHP, anda juga boleh menentukan kaedah pengekodan untuk menyimpan data ke pangkalan data:

mysqli_query($link, "SET NAMES 'utf8mb4'");

Di mana, $link ialah objek yang menyambung ke pangkalan data MySQL.

  1. Semak set aksara jadual data

Apabila mencipta jadual data, anda perlu menentukan set aksara:

CREATE TABLE `mytable`(`id` INT, `name` VARCHAR(50)) DEFAULT CHARSET=utf8mb4;
  1. Dalam halaman web Nyatakan set aksara

dan tambahkan kod berikut pada kepala html:

<meta charset="UTF-8">

Selepas tetapan ini, semua set aksara yang dipaparkan adalah UTF- 8.

Ringkasan:

Walaupun masalah bercelaru data PHP yang disimpan ke pangkalan data adalah agak biasa, sebenarnya, selagi punca masalah itu difahami, ia boleh diselesaikan dengan mudah melalui penyelesaian di atas. Pada masa yang sama, set aksara utf8mb4 harus digunakan apabila boleh semasa pembangunan.

Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan masalah aksara bercelaru apabila data php disimpan ke pangkalan data. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn