


Apakah sebab masalah bercelaru php menyambung ke mysql? Bagaimana untuk menyelesaikannya?
Mar 27, 2023 pm 05:24 PMApabila menggunakan PHP untuk menyambung ke MySQL, anda sering menghadapi masalah aksara bercelaru. Ini adalah masalah besar bagi kami apabila menulis laman web berbilang bahasa. Sebelum menangani masalah ini, kita perlu memahami dahulu sebab-sebab pembentukan watak bercelaru.
1. Sebab aksara bercelaru
Apabila menggunakan PHP untuk menyambung ke MySQL, jika set aksara MySQL tidak konsisten dengan set aksara PHP, aksara bercelaru akan muncul. Sebab khusus adalah seperti berikut:
- Set aksara MySQL dan set aksara PHP adalah tidak konsisten
Set aksara lalai MySQL ialah UTF-8, dan set aksara lalai PHP ialah ISO-8859-1. Jika anda tidak menentukan set aksara dalam kod PHP anda, PHP akan menggunakan set aksara ISO-8859-1. Pada masa ini, jika data yang ditanya daripada MySQL mengandungi aksara UTF-8, aksara bercelaru akan muncul. - Set aksara bagi jadual data MySQL tidak konsisten dengan set aksara pelayan MySQL
Dalam MySQL, setiap jadual data mempunyai set aksara lalai. Jika set aksara jadual data tidak konsisten dengan set aksara pelayan MySQL, aksara bercelaru mungkin muncul. - Cara PHP menyambung ke MySQL adalah salah
Apabila menyambung ke MySQL, PHP mempunyai berbilang kaedah sambungan, seperti mysql_connect, mysqli_connect, PDO, dsb. Kaedah sambungan yang berbeza akan menggunakan kaedah pengekodan yang berbeza Jika dipilih secara tidak betul, ia akan menyebabkan masalah kod bercelaru.
2. Selesaikan masalah kod bercelaru
Berdasarkan sebab di atas, langkah-langkah berikut boleh diambil untuk menyelesaikan masalah kod bercelaru.
- Nyatakan set aksara untuk PHP
Dalam kod PHP, selesaikan masalah aksara bercelaru dengan menyatakan set aksara. Anda boleh menggunakan kod berikut:
header('Content-Type:text/html;charset=utf-8');
- Ubah suai set aksara lalai MySQL
Anda boleh mengubah suai set aksara lalai MySQL dalam fail konfigurasi MySQL my.cnf. Buka fail, cari bahagian [mysqld], dan tambah kod berikut:
character-set-server=utf8
- Ubah suai set aksara jadual data MySQL
Anda boleh mengubah suai set aksara daripada jadual data melalui pernyataan berikut:
ALTER TABLE {table_name} CONVERT TO CHARACTER SET utf8;
- Ubah suai cara PHP menyambung ke MySQL
Anda boleh menggunakan PDO untuk menyambung ke MySQL dan menentukan set aksara semasa menyambung, seperti berikut:
$pdo = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', 'password');
Jika anda menggunakan mysqli untuk menyambung ke MySQL, anda boleh menentukan set aksara melalui kod berikut:
$mysqli = mysqli_connect('localhost', 'root', 'password', 'test'); mysqli_set_charset($mysqli, 'utf8');
- Simpan PHP fail sebagai format pengekodan UTF-8
Jika fail PHP anda mengandungi aksara Cina, maka apabila menyimpan fail, pastikan anda menyimpan fail dalam format pengekodan UTF-8, jika tidak, aksara yang bercelaru akan muncul.
Ringkasnya, masalah bercelaru sambungan PHP ke MySQL adalah masalah yang sangat biasa, tetapi selagi anda menguasai penyelesaiannya, anda boleh menanganinya dengan mudah. Saya harap artikel ini dapat membantu semua orang.
Atas ialah kandungan terperinci Apakah sebab masalah bercelaru php menyambung ke mysql? Bagaimana untuk menyelesaikannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Artikel Panas

Alat panas Tag

Artikel Panas

Tag artikel panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian

Bagaimana untuk membetulkan ralat mysql_native_password tidak dimuatkan pada MySQL 8.4
