mysql — utf8 в базе данных — установить default_charset в php.ini

Я установил utf8 в базе данных MySQL

теперь это показывает

+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+


+----------------------+-----------------+
| Variable_name        | Value           |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database   | utf8_unicode_ci |
| collation_server     | utf8_unicode_ci |
+----------------------+-----------------+

У меня есть ниже в коде PHP

mysqli_query("SET NAMES 'utf8'");

а также

$con = mysqli_connect('host','user','pass','database');
mysqli_query($con,"SET NAMES 'utf8'");

Так как я установил utf8 в базе данных, я планирую удалить

mysqli_query("SET NAMES 'utf8'");

а также

mysqli_query($database,"SET NAMES 'utf8'");

из кода PHP

Мне сказали, что я могу удалить приведенный выше код, но мне нужно добавить

mysqli_set_charset($con,"utf8");

в коде PHP.

Вместо добавления mysqli_set_charset($con,"utf8") в коде я могу установить

default_charset = "UTF-8"

в php.ini?

my.cnf это

[client]
default-character-set=utf8

[mysqld]
default-character-set=utf8
default-collation=utf8_general_ci
character-set-server=utf8
collation-server=utf8_unicode_ci
init-connect='SET NAMES utf8'

2

Решение

Вместо добавления mysqli_set_charset($con,"utf8") в коде я могу установить
default_charset = "UTF-8" в php.ini?

Нет, это не влияет на набор символов подключения к базе данных.

И даже Настройки расширения MySQL ничего не предлагать в этом отношении — и никто те для MySQLi.

Это является настройка для каждого соединения в конце концов.

Но если вы поместите свой код для установления соединения с базой данных в один файл, который вы включаете, где бы он ни был необходим, этого должно быть достаточно.

2

Другие решения

Вопрос касается MySQL, поэтому настройка конфигурации в php.ini не сильно поможет в этом случае. Я предлагаю обновить файл my.cnf в MySQL

больше о настройках my.cnf можно найти Вот

[client]
default-character-set=utf8

[mysqld]
character-set-server=utf8
default-character-set=utf8
default-collation=utf8_unicode_ci
character-set-client = utf8

я взял вышеупомянутую часть из этого нить, который обсуждает ту же проблему, но для PHP и MySQL.
Надеюсь это поможет!

0

По вопросам рекламы [email protected]