Автор Тема: Как избавится от символов ??????????  (Прочитано 432 раз)

Оффлайн support

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 949
Как избавится от символов ??????????
« : 09 Марта 2011, 11:27:42 »
При работе с MySQL5 из PHP требуется настраивать кодировку соединения с базой данных. Если этого не сделать, то вместо кириллического текста на экран будут выданы символы вопросительных знаков: ????? ???????? ??????.

Настройка кодировки соединения выполняется запросом “SET NAMES”, который нужно выполнить после соединения с базой данных. Например, для установки кодировки соединения cp1251 (windows-1251) нужно выполнить следующий запрос к базе данных.

mysql_query (“SET NAMES `cp1251`”);

Таким образом, для того, чтобы адаптировать php-код сайта для работы с MySQL версии 5 нужно прописать в код выполнение лишь одного дополнительного запроса для установки кодировки. Если соединение с базой данных осуществляется только в одном общем файле, то вносить изменения нужно только в него. Ниже приведен пример такого файла.

Соединение с СУБД MySQL из PHP:

<?php
$dblocation 
“localhost”;            // Адерс сервера MySQL
$dbuser “user”;                        // Имя пользователя базы данных
$dbpasswd ***;                    // и его пароль

$dbcnx = @mysql_connect($dblocation$dbuser$dbpasswd);
if (!
$dbcnx)
            {
            exit (
<P>В настоящий момент сервер базы данных
            не доступен
поэтому корректное отображение
            страницы невозможно
.</P>);
            }
                        else
            {
            echo 
<P>Соединение установлено.</P>;
            }
            @
mysql_query (“SET NAMES `cp1251`);
?>


Символы @ перед вызовом функций mysql_connect() и mysql_query() запрещают вывод возможных ошибок в браузер, т.к. это может раскрыть посетителям сайта конфиденциальную информацию о базе данных.
Какой вопрос - такой ответ.
Хостинг-провайдер HOST96.ru
Служба технической поддержки