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
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
Hanya tambah kod semasa menyambung ke pangkalan data:
mysqli_set_charset($mysqli, "utf8mb4");
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.
Apabila mencipta jadual data, anda perlu menentukan set aksara:
CREATE TABLE `mytable`(`id` INT, `name` VARCHAR(50)) DEFAULT CHARSET=utf8mb4;
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!