Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя

Какой вариант установки кодировки MySqli в PHP лучше?

ПрограммированиеPhpКодировка
Анонимный вопрос
Пятиминутка PHP
  · 488
Первый
Подкаст о PHP, DBA, архитектуре, DevOps. Авторское мнение о современных трендах в веб-разр...  · 20 дек 2021  · 5minphp.ru
Отвечает
Пётр М.
Идеальный вариант установки котировки - это установка на сервере в настройках mysqld, подходит если вы полностью контролируете инфраструктуру, т.е. можете поменять конфиги MySQL (/etc/mysql).
Если всё же говорить об установке кодировки содинения из PHP, то на StackOverflow есть развёрнутый ответ: https://stackoverflow.com/questions/26596294/set-names-vs-mysqli-set-charset-besides-affecting-mysqli-escape-string-are
Если кратко: метод set_charset под капотом делает sql запрос SET NAMES и после этого запоминает на стороне php установленную кодировку - эта информация позже будет важна для php при вызове mysql_real_escape_string и некоторых других функций.
Таким образом set_charset предпочтительнее.
Тут можно копнуть глубже: а если мы не будем вызывать set_charset, то какая кодировка для mysqli соединения будет использована по умолчанию?