sql >> Database teknologi >  >> RDS >> Mysql

Manipulering af utf8mb4 data fra MySQL med PHP

Jeg vil simpelthen gætte på, at du sætter tabellen til utf8mb4 , men din forbindelseskodning er indstillet til utf8 . Du skal indstille den til utf8mb4 også, ellers vil MySQL konvertere den lagrede utf8mb4 data til utf8 , hvoraf sidstnævnte ikke kan kode "høje" Unicode-tegn. (Ja, det er en MySQL-idiosynkrasi.)

På en rå MySQL-forbindelse skal den se sådan ud:

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

Du bliver nødt til at tilpasse det til den bedste måde for klienten, afhængigt af hvordan du opretter forbindelse til MySQL fra PHP (mysql, mysqli eller PDO).

For virkelig at præcisere (ja, ved at bruge mysql_ udvidelse for nemheds skyld, gør det ikke derhjemme):

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. MYSQL JOIN på flere tabeller giver ingen resultater

  2. PostgreSQL Omvendt LIKE

  3. Henter rækker tilføjet sidste time

  4. Indstilling af Django/MySQL-websted til at bruge UTF-8