Необходимо ли «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" влияет на:
"SET CHARACTER SET x" влияет на:
Кодировка/транскодирование символов Обработка
MySQL обрабатывает запросы и результаты посредством нескольких этапов перекодирования:
Значение набора символов базы данных по умолчанию
Если набор символов базы данных по умолчанию не 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