Advertisement
Guest User

Untitled

a guest
Mar 6th, 2020
1,538
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.50 KB | None | 0 0
  1. 1. База должна быть создана с кодировкой utf8mb4 и collate = utf8mb4_unicode_ci
  2.  
  3. 2. Нужно чтоб таблица была создана с такой же кодировкой и collate:
  4.  
  5. [CODE=sql]CREATE TABLE `tablename` (
  6.  
  7. -- ...
  8.  
  9. ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;[/CODE]
  10.  
  11. 3. В столбцы, которые будет идти запись utf8 символов нужно тоже сопоставить этим кодировкам:
  12.  
  13. [CODE=sql]`row_name` varchar(11) COLLATE utf8mb4_unicode_ci NOT NULL[/CODE]
  14.  
  15. 4. При подключении к БД из php нужно использовать установить кодировку и collate (пример для экстеншена mysqli):
  16.  
  17. [CODE=php]$DB = new mysqli($settings['host'], $settings['user'], $settings['pass'], $settings['database']);
  18.  
  19. if ($DB->connect_errno) {
  20.  
  21. exit('mysql connect error: (' . $DB->connect_errno . ') ' . $DB->connect_error);
  22.  
  23. }
  24.  
  25. if (!$DB->set_charset("utf8mb4")) {
  26.  
  27. exit('mysql set charset error: ' . $DB->error);
  28.  
  29. }
  30.  
  31. if (!$DB->query('SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci)) {
  32.  
  33. exit('mysql set collate error: ' . $DB->error);
  34.  
  35. }[/CODE]
  36.  
  37. 5. При передаче данных в скрипт (post-запросом) - нужно чтоб там точно всё было в utf8.
  38.  
  39.  
  40.  
  41. При соблюдении всех условий всё 100% должно заработать.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement