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

Не може да се съхранява емоджи в базата данни

Добре, най-накрая успях да го накарам да работи! Благодаря на всички, които се опитаха да ми помогнат, особено на @Rick James и @Gerard Roche.

ПРЕДЛОЖЕНИЕ:

Ако трябва да работите с емоджи, първо направете прости тестове на localhost. Създайте нова база данни и направете ново приложение с цел тестване.

Ако следвате стъпките, които написах във въпроса, или ако следвате този урок: https://mathiasbynens.be/notes/mysql-utf8mb4#utf8-to-utf8mb4 трябва да работи.

Работейки локално върху ново основно приложение, ще имате повече контрол и повече място, за да направите всички необходими тестове.

РЕШЕНИЕ:

В моя случай проблемът беше в конфигурацията на базата данни в CodeIgniter. Не беше правилно настройването на char_set и съпоставянето за глупаво пренебрегване:замених настройките на базата данни във функцията, която запазва съобщенията, за да съм сигурен, че работи с мобилната база данни.

ПРЕДИ:

function message_save ( $data = FALSE )
{   
    $project_db_config                  = array();
    $project_db_config['hostname']      = 'MY_HOST';
    $project_db_config['username']      = 'MY_USERNAME';
    $project_db_config['password']      = 'MY_PASSWORD';
    $project_db_config['database']      = 'MY_DATABASE';

    $mobile_db                          = $this->load->database( $project_db_config, TRUE );

    // other code to save message       
}

СЛЕД:

function message_save ( $data = FALSE )
{
    $mobile_db_connection = $this->load->database('admin_mobile_mh', TRUE);

    // other code to save message
}

ЗАКЛЮЧЕНИЕ:

Приложението трябва да настрои правилно връзката с базата данни. Ако базата данни е настроена правилно, но не осъществите правилната връзка с приложението си, тя няма да работи.

Така че, ако срещнете подобни проблеми, уверете се, че API е настроил правилно char_set като utf8mb4 и db_collat като utf8mb4_unicode_ci .



  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_connect()

  2. съхранени процедури, изпълнявани чрез jdbc

  3. MySQL заявката с множество оператори И изглежда игнорира един

  4. Неуспешна връзка за композиране на mysql на Docker

  5. Условие WHERE в MySQL с 16 различни примера за заявка