Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Manipulowanie danymi utf8mb4 z MySQL za pomocą PHP

Po prostu zgaduję, że ustawiasz tabelę na utf8mb4 , ale kodowanie połączenia jest ustawione na utf8 . Musisz ustawić go na utf8mb4 również, w przeciwnym razie MySQL skonwertuje przechowywany utf8mb4 dane do utf8 , z których ten ostatni nie może kodować „high” znaków Unicode. (Tak, to specyfika MySQL.)

Na surowym połączeniu MySQL będzie to wyglądać tak:

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

Będziesz musiał dostosować to do najlepszego sposobu klienta, w zależności od tego, jak łączysz się z MySQL z PHP (mysql, mysqli lub PDO).

Aby naprawdę wyjaśnić (tak, używając mysql_ rozszerzenie dla uproszczenia, nie rób tego w domu):

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. zapisywanie treści html w bazie mysql

  2. Typ danych/struktura do przechowywania przesunięcia strefy czasowej w MySQL

  3. GROUP BY dla ciągłych wierszy w SQL

  4. Najlepsze praktyki usuwania nietrwałego (PHP/MySQL)

  5. Dodaj nową kolumnę do wyników i połącz tabelę