PHP ialah bahasa pengaturcaraan bahagian pelayan yang digunakan secara meluas yang digunakan secara meluas untuk membina aplikasi web. Dalam PHP, pembangun selalunya perlu menggunakan pangkalan data untuk menyimpan dan mendapatkan semula data. Apabila menggunakan pangkalan data, terdapat isu yang sangat penting untuk dipertimbangkan, dan itu adalah pengekodan pangkalan data. Dalam artikel ini, kami akan menerangkan cara PHP menetapkan pengekodan pangkalan data dan sebab menetapkan pengekodan itu penting.
Apakah pengekodan pangkalan data?
Pengekodan pangkalan data merujuk kepada cara aksara disimpan dan diproses dalam pangkalan data. Pangkalan data yang berbeza mempunyai kaedah pengekodan yang berbeza. Kaedah pengekodan biasa termasuk UTF-8, GB2312, GBK, BIG5, dsb. Apabila menggunakan PHP untuk mengendalikan pangkalan data, anda harus memilih kaedah pengekodan yang betul untuk memastikan ketepatan penyimpanan dan pengambilan data.
Mengapa penting untuk menetapkan pengekodan pangkalan data?
Jika pengekodan pangkalan data dan pengekodan aplikasi tidak konsisten, masalah akan berlaku semasa proses menyimpan dan mendapatkan semula data. Contohnya, jika aplikasi menggunakan pengekodan UTF-8 dan pangkalan data menggunakan pengekodan GB2312, maka apabila data dimasukkan ke dalam pangkalan data, aksara Cina di dalamnya akan ditukar kepada beberapa aksara pelik atau aksara bercelaru. Apabila membaca data, bacaan mungkin juga gagal disebabkan pengekodan yang tidak konsisten, atau data yang dibaca mungkin tidak lengkap atau maklumat mungkin tidak tepat.
Cara menetapkan pengekodan pangkalan data
Terdapat dua cara untuk menetapkan pengekodan pangkalan data MySQL dalam PHP Satu ialah menetapkan kaedah pengekodan sambungan pangkalan data apabila menyambung ke MySQL, iaitu ialah, memanggil fungsi MySQL mysql_set_charset() untuk melaksanakan kaedah pengekodan Yang kedua ialah untuk menentukan kaedah pengekodan semasa menulis pernyataan SQL, iaitu, menambah pernyataan SET NAMES sebelum pernyataan pertanyaan. Di bawah ini kami akan menerangkan penggunaan kedua-dua kaedah ini masing-masing.
Kaedah 1: fungsi mysql_set_charset()
Fungsi mysql_set_charset() ialah fungsi terbina dalam PHP untuk menetapkan pengekodan pangkalan data MySQL. Fungsi ini secara langsung boleh menetapkan kaedah pengekodan pangkalan data selepas mewujudkan sambungan pangkalan data. Berikut ialah contoh mudah:
<?php $link = mysql_connect('localhost', 'root', '123456'); mysql_set_charset('utf8', $link); mysql_select_db('test', $link); ?>
Dalam contoh di atas, kami menggunakan fungsi mysql_connect() untuk menyambung ke pangkalan data MySQL, dan kemudian menggunakan fungsi mysql_set_charset() untuk menetapkan set aksara untuk dikekalkan sambungan dengan pangkalan data MySQL utf8. Akhir sekali, pangkalan data ujian dipilih untuk operasi menggunakan fungsi mysql_select_db(). Dengan cara ini, anda boleh memastikan set aksara antara PHP dan pangkalan data MySQL sentiasa konsisten, dengan berkesan mengelakkan penjanaan aksara bercelaru.
Kaedah 2: Gunakan pernyataan SET NAMES
Pernyataan SET NAMES ialah arahan MySQL yang digunakan untuk menetapkan set aksara klien. Dalam PHP, kita boleh menggunakan pernyataan SET NAMES untuk menetapkan pengekodan pangkalan data MySQL. Berikut ialah contoh penggunaan pernyataan SET NAMES:
<?php $link = mysql_connect('localhost', 'root', '123456'); mysql_query('SET NAMES utf8', $link); mysql_select_db('test', $link); ?>
Dalam contoh di atas, kami menggunakan fungsi mysql_connect() untuk menyambung ke pangkalan data MySQL, dan kemudian menggunakan fungsi mysql_query() untuk melaksanakan pernyataan SET NAMES utf8 Set aksara sambungan ditetapkan kepada utf8. Akhir sekali, pangkalan data ujian dipilih untuk operasi menggunakan fungsi mysql_select_db().
Perlu diambil perhatian bahawa pernyataan SET NAMES mesti dilaksanakan sebelum melaksanakan sebarang pernyataan SQL, jika tidak, ia boleh menyebabkan ralat pengekodan. Oleh itu, semasa menulis program PHP, anda harus memastikan bahawa pernyataan SET NAMES ialah pernyataan SQL pertama selepas PHP menyambung ke pangkalan data MySQL.
Ringkasan
Dalam PHP, adalah sangat penting untuk menetapkan pengekodan pangkalan data dengan betul. Terdapat dua cara untuk menetapkan kaedah pengekodan pangkalan data MySQL dalam PHP Satu ialah menetapkan kaedah pengekodan sambungan pangkalan data apabila menyambung ke MySQL, iaitu, menggunakan fungsi mysql_set_charset() yang lain adalah untuk menentukan kaedah pengekodan apabila menulis pernyataan SQL, iaitu, menambah SET sebelum pernyataan NAMES. Dengan menetapkan pengekodan pangkalan data dengan betul, anda boleh mengelakkan aksara bercelaru dalam penyimpanan dan pengambilan data serta memastikan integriti dan ketepatan data.
Atas ialah kandungan terperinci Bagaimana untuk menetapkan pengekodan pangkalan data dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!