Saya hanya ingin memberikan beberapa detail lebih lanjut tentang solusi yang diusulkan oleh vartec yang (bergantung pada instalasi MySQL Anda) solusi paling tepat untuk masalah Anda. Pertama-tama, masalah set karakter / penyandian di MySQL adalah subjek yang agak rumit yang secara luas tercakup dalam manual MySQL Bab 9.1 "Dukungan Kumpulan Karakter" . Dalam kasus Anda terutama 9.1.4. "Kumpulan dan Kumpulan Karakter Koneksi" akan menjadi yang paling relevan.
Singkatnya:MySQL harus mengetahui set karakter/enkode aplikasi klien Anda (berbicara dari perspektif basis data yang merupakan skrip PHP Anda) yang diharapkan karena akan mentranskode semua data string dari set karakter internal/enkode yang ditentukan di server-, database-, tabel- atau kolom-tingkat ke dalam set karakter koneksi / encoding. Anda menggunakan UTF-8 di sisi klien jadi harus memberi tahu MySQL bahwa Anda menggunakan UTF-8. Ini dilakukan dengan perintah MySQL SET NAMES 'utf8'
yang harus dikirim sebagai kueri pertama saat membuka koneksi. Bergantung pada instalasi Anda dan pada pustaka klien MySQL yang Anda gunakan dalam skrip PHP, ini dapat dilakukan secara otomatis pada setiap koneksi.
Jika Anda menggunakan PDO, itu hanya masalah pengaturan parameter konfigurasi
$db = new PDO($dsn, $user, $password);
$db->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND, "SET NAMES 'utf8'");
Menggunakan mysqli mengubah set karakter klien / encoding bahkan lebih sederhana:
$mysqli = new mysqli("localhost", "user", "password", "db");
$mysqli->set_charset("utf8");
Saya harap itu akan membantu membuat semuanya lebih dimengerti.