Mysql
 sql >> база данни >  >> RDS >> Mysql

Манипулиране на utf8mb4 данни от MySQL с PHP

Просто предполагам, че задавате таблицата на utf8mb4 , но кодирането на връзката ви е настроено на utf8 . Трябва да го настроите на utf8mb4 също така, в противен случай MySQL ще преобразува съхранения utf8mb4 данни към utf8 , последният от които не може да кодира "високи" символи на Unicode. (Да, това е идиосинкразия на MySQL.)

При необработена MySQL връзка тя ще трябва да изглежда така:

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

Ще трябва да го адаптирате към най-добрия начин на клиента, в зависимост от това как се свързвате с MySQL от PHP (mysql, mysqli или PDO).

За да изясня наистина (да, използвайки mysql_ разширение за простота, не правете това у дома):

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. Как да запазите обратната наклонена черта при избягване на кавички в MySQL – QUOTE()

  2. Валиден ли е VARCHAR(20000) в MySQL?

  3. Python преобразува резултата от mysql заявка в json

  4. SQLSTATE[HY000] [2002] Няма такъв файл или директория

  5. Сравнение между MySQL Clone Plugin и Xtrabackup