«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Необходим ли «SET CHARACTER SET utf8» для PDO::MYSQL_ATTR_INIT_COMMAND?

Необходим ли «SET CHARACTER SET utf8» для PDO::MYSQL_ATTR_INIT_COMMAND?

Опубликовано 7 ноября 2024 г.
Просматривать:362

Is \

Необходимо ли «SET CHARACTER SET utf8» в PDO с «PDO::MYSQL_ATTR_INIT_COMMAND»?

В PHP и MySQL «SET NAMES» utf8» и «SET CHARACTER SET utf8» обычно используются при работе с кодировкой UTF-8. Однако при использовании PDO параметр «PDO::MYSQL_ATTR_INIT_COMMAND» ограничивает нас одним запросом. Поэтому важно учитывать, необходим ли в этом контексте «SET CHARACTER SET utf8».

Влияние «SET CHARACTER SET utf8» на настройки соединения

Использование " SET CHARACTER SET utf8» после «SET NAMES utf8» сбросит «character_set_connection» и «collation_connection» к настройкам базы данных по умолчанию («@@character_set_database» и «@@collation_database»).

Разница между «SET NAMES» и «SET CHARACTER SET»

"УСТАНОВИТЬ ИМЕНА x" влияет на:

  • "character_set_client"
  • "character_set_results"
  • "character_set_connection"

"SET CHARACTER SET x" влияет на:

  • "character_set_client"
  • "character_set_results"
  • "collation_connection" (но также внутренне устанавливает "character_set_connection")

Кодировка/транскодирование символов Обработка

MySQL обрабатывает запросы и результаты посредством нескольких этапов перекодирования:

  1. Преобразует входящий запрос из «character_set_client» в «character_set_connection»
  2. Сравнивает строки (столбцы) против литералов) с использованием «сравнения по столбцам»
  3. Создает набор результатов в «character_set_results»

Значение набора символов базы данных по умолчанию

Если набор символов базы данных по умолчанию не UTF-8, используйте «SET CHARACTER SET utf8» может не полностью включить поддержку UTF-8. Это связано с тем, что шаг 3 процесса перекодирования может привести к потере данных, если параметры сортировки столбцов несовместимы с UTF-8.

Заключение

В общем, «SET NAMES utf8» — предпочтительный метод решения проблем с набором символов. Установка переменных сервера MySQL в «my.cnf» позволяет избежать снижения производительности из-за ненужных команд SET при каждом соединении.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3