Menyelesaikan masalah MySQL tidak bisa simpan emoji

Menyimpan karakter emoji atau unicode ke mysql

Dalam proses pembuatan aplikasi, mungkin ada kalahnya kita menemukan masalah dimana query insert yang di jalankan tidak bekerja. Sebagai seorang programer pemula, pasti akan langsung memeriksa elemen selanjutnya.

Tanpa memperhatikan terlebih dahulu, apakah data yang di insert sudah di tambahkan atau belum. Hal inilah yang saya alami ketika membangun project, pada saat itu saya sedang membuat program bernaa Jeo Pedia.

Aplikasi toko online yang terintegrasi dengan bot telegram. Aplikasi ini tidak menggunakan sistem pendaftaran terbuka, tapi hanya mencatat data user dari telegram saja. Permasalahan terjadi ketika beberapa user tidak bisa menjalankan bot dengan baik.

Karena bot telegram itu sifatnya tidak bisa di lihat alias berjalan di sisi server, proses pebraikan juga memakan waktu lama. Sampai akhirnya, saya menemukan kalau query insert data user awal tidak berjalan dengan baik.

Query yang tidak berjalan dengan baik ini tidak menghasilkan error, agak sulit untuk memeriksanya. Yang error adalah langkah selanjutnya, yakni ketika aplikasi akan mengakses data yang sudah di input sebelumnya.

Setelah di selidiki, ternyata pengguna tersebut memasang nama dengan karakter lain non ascii. Akibatnya query insert data tidak bisa di lakukan. Karena saya bingung, akhirnya saya googling. Dan ketemu jawaban di stackoverflow.

Jawaban dari sana adalah, kita harus mengubah penyortiran data dari utf8mb4_general_ci ke utf8mb4

Query pengubahan akan menjadi seperti ini.

ALTER TABLE Tablename CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin

Perintah ALTER TABLE dengan opsi CONVERT TO CHARACTER SET digunakan untuk mengubah set karakter dari tabel MySQL. Set karakter adalah sekumpulan kode yang digunakan untuk menentukan karakter apa yang dapat ditampilkan oleh sebuah tabel.

utf8mb4 adalah salah satu set karakter yang tersedia di MySQL yang dapat menampilkan seluruh karakter Unicode. utf8mb4_bin adalah collation atau penyortiran yang digunakan untuk menentukan bagaimana karakter diurutkan dan diperbandingkan dalam tabel.

Jadi, perintah ALTER TABLE Tablename CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin akan mengubah set karakter dari tabel Tablename menjadi utf8mb4 dan mengubah collation menjadi utf8mb4_bin.

Perintah ini berguna jika Anda ingin menampilkan karakter Unicode. Seperti yang kita ketahui kalau karakter unicode adalah teks yang berbeda dari teks biasa, unicode biasanya terdiri dari beberapa karakter. Dengan metode ini kita bisa menyimpan unicode dalam sebuah tabel mysql.

RyanID
RyanID Saya aslinya tertarik pada teknologi elekronika, tapi karena kurang di dukung ortu, akhirnya pindah ke coding. Saat ini bekerja sebagai fullstack dev di Netzku.com