У меня есть строка следующего содержания:

  \ud83c\udf80NEW STUFF \u0026 SECOND STUFF\n\ud83d\udcf1Sms\/ Kik : 085738566676 \/ veinshop\n\u26d4 All item exclude ongkir\n\u2708Shipping mon-fri\n\ud83d\udcb0BCA only\n\ud83d\ude90JNE\n\ud83c\udfe1 Denpasar-bali

Я хотел сохранить это в своей базе данных MySQL, но он всегда дает мне пустое место. Я использую ORM doctrine2 в качестве интерфейса к базе данных. Вот объект со свойством string:

class Shop
{

 /**
     *
     * @var string
     * @ORM\Column(name="bio", type="string", nullable=true)
     */
    private $bio;

 /**
     * Set bio
     *
     * @param string $bio
     * @return InstagramShop
     */
    public function setBio($bio)
    {
        $this->bio = $bio;

        return $this;
    }

    /**
     * Get bio
     *
     * @return string 
     */
    public function getBio()
    {
        return $this->bio;
    }
}

Когда я устанавливаю эту сущность Shop с биографией, и вызов сохраняется на этой сущности. Сохраненное значение - ПУСТО. Я установил параметры сортировки таблицы на utf8mb4, а кодировку в dbo - на utf8mb4

2
adit 24 Сен 2013 в 18:53
Установите для сортировки таблиц и подключений значение utf8mb4
 – 
Mihai
24 Сен 2013 в 18:57
Как настроить параметры сортировки подключений?
 – 
adit
24 Сен 2013 в 19:48
После подключения добавьте sql_query ('SET NAMES utf8mb4'); РЕДАКТИРОВАТЬ: в DBO: DBO :: query ('УСТАНОВИТЬ ИМЕНА utf8mb4');
 – 
Dimitri Mostrey
24 Сен 2013 в 20:13

1 ответ

Лучший ответ

Вероятно, у вас есть конфигурация, которая выглядит примерно так:

doctrine:
    dbal:
        default_connection: default
        connections:
            default:
                dbname: %database_name%
                ...
                charset: utf8mb4

Убедитесь, что для charset установлено значение utf8mb4. Это сопоставление ваших подключений.

3
nurikabe 24 Сен 2013 в 20:11