Вопросы вместо текста, подключение к бд которой нет

204
28 сентября 2017, 15:35

В общем это даже не проблема, просто любопытство не дает покоя. Есть код PHP, который пытается установить соединение с несуществующей бд.

<?php
header('Content-Type: text/html; charset=utf-8');
$dbTestConnection = new mysqli('localhost', 'admin', '', 'dasd');
if (mysqli_connect_errno()){
printf("Не удалось подключиться: %s\n", mysqli_connect_error());
exit();
}
?>

В браузере выводит:

Warning: mysqli::__construct(): (HY000/2002): ��������� �� �����������, �.�. ������ ������� ������ ������ �� ���������. in E:\Program Files\xampp\htdocs\r2\exmple_mysql.php on line 4 Не удалось подключиться: ����������� �� �����������, �.�. �������� ��������� ������ ������ �� �����������.

если удалить из header utf-8 вот так:

header('Content-Type: text/html; charset=');

то браузер выводит

Warning: mysqli::__construct(): (HY000/2002): пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ, пїЅ.пїЅ. пїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ. in E:\Program Files\xampp\htdocs\r2\exmple_mysql.php on line 4 РќРµ удалось подключиться: Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение.

То есть что не отображалось до этого стало отображаться, но перестало отображаться то что было.

Вопрос: как сделать так чтобы все корректно отображалось? Что я пытался:

  • В папке с php файлом создал .htacces и прописал AddDefaultCharset Windows-1251 и еще utf-8 пытался - не помогло.
  • В php.ini стоит default_charset="UTF-8"
  • В \apache\conf\httpd.conf прописал строчку AddDefaultCharset utf-8
  • Файл php сохранен в utf-8

Пытался еще настройки mySQL менять всякие, и через php установить кодировку mysql - ничего не помогло, хотя по логике и не должно, ведь mysql выключена.

Answer 1

В общем отвечая на вопрос как сделать чтобы все нормально отображалось нашел ответ: поменял в windows язык, регион, язык интерфейса на Английский/США. Теперь все отображается нормально. Не знаю что именно из этого помогло, видимо до этого сообщение об ошибке отправлялось на русском языке, теперь на английском. Решение конечно так себе)

Answer 2

Дело совсем не в настройках php или apache. Поменяйте язык сообщений в my.ini

lc-messages=en_US

Так будет хотя бы по-английски.

См. также

  1. Параметр lc-message (по-английски)
  2. Параметр lc-message-dir (по-английски)
  3. Где искать my.ini в Windows (по-английски)
READ ALSO
Получение Id пользователя на сайте

Получение Id пользователя на сайте

Ситуация следующая: существует сайт https://elibraryru/, необходимо получить статьи определённого участника, а для этого нужно получить его id на сайте

167
SQLite3 PHP - взять больше одной строчки

SQLite3 PHP - взять больше одной строчки

Когда выполняю запрос

150
Непонятное сравнение в php

Непонятное сравнение в php

Изучаю php и не понимаю как так получаетсяСравниваю 2 числа и результат true

199