sql >> Databáze >  >> RDS >> Mysql

Manipulace s daty utf8mb4 z MySQL pomocí PHP

Jednoduše bych odhadl, že nastavujete tabulku na utf8mb4 , ale kódování vašeho připojení je nastaveno na utf8 . Musíte jej nastavit na utf8mb4 také, jinak MySQL převede uložený utf8mb4 data do utf8 , z nichž druhý neumí kódovat "vysoké" znaky Unicode. (Ano, to je idiosynkrazie MySQL.)

Na nezpracovaném připojení MySQL to bude muset vypadat takto:

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

Budete to muset přizpůsobit nejlepšímu způsobu klienta v závislosti na tom, jak se připojujete k MySQL z PHP (mysql, mysqli nebo PDO).

Abych to opravdu objasnil (ano, pomocí mysql_ rozšíření pro jednoduchost, nedělejte to doma):

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. SQL:Vyberte záznamy, kde VŠECHNY spojené záznamy splňují určitou podmínku

  2. SQL Server 2000 – propojený server

  3. Jak získat poslední den v měsíci v Oracle

  4. Jak načíst rozevírací hodnoty z databáze a zobrazit v jsp