Apakah sebab masalah bercelaru php menyambung ke mysql? Bagaimana untuk menyelesaikannya?

PHPz
Lepaskan: 2023-03-27 17:45:48
asal
607 orang telah melayarinya

Apabila 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:

  1. 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.
  2. 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.
  3. 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.

  1. 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');
Salin selepas log masuk
  1. 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
Salin selepas log masuk
  1. 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;
Salin selepas log masuk
  1. 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');
Salin selepas log masuk

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');
Salin selepas log masuk
  1. 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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan