Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Memanipulasi data utf8mb4 dari MySQL dengan PHP

Saya hanya menebak bahwa Anda mengatur tabel ke utf8mb4 , tetapi penyandian koneksi Anda disetel ke utf8 . Anda harus mengaturnya ke utf8mb4 juga, jika tidak, MySQL akan mengonversi utf8mb4 yang tersimpan data ke utf8 , yang terakhir tidak dapat menyandikan karakter Unicode "tinggi". (Ya, itu adalah keistimewaan MySQL.)

Pada koneksi MySQL mentah, itu akan terlihat seperti ini:

SET NAMES 'utf8mb4';
SELECT * FROM `my_table`;

Anda harus menyesuaikannya dengan cara terbaik klien, tergantung bagaimana Anda terhubung ke MySQL dari PHP (mysql, mysqli atau PDO).

Untuk memperjelas (ya, menggunakan mysql_ ekstensi untuk kesederhanaan, jangan lakukan itu di rumah):

mysql_connect(...);
mysql_select_db(...);
mysql_set_charset('utf8mb4');     // adapt to your mysql connector of choice

$r = mysql_query('SELECT * FROM `my_table`');

var_dump(mysql_fetch_assoc($r));  // data will be UTF8 encoded


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. php termasuk kesalahan tidak menemukan jalan

  2. Skema DB Untuk Obrolan?

  3. Sintaks MySQL untuk menyisipkan baris baru di baris tengah?

  4. Cara mencari nilai yang dipisahkan koma

  5. Kontrol Versi MySQL - Subversi