[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: mysql_connect()
boatswain
Windows xp RU sp3 php 5.3.13 mysql 5.5.25
функция mysql_connect()

ошибки типа:
"php_network_getaddresses: getaddrinfo failed: Этот хост неизвестен."
или
"Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение."

Я уже скоро сломаюсь: почему в этих сообщениях присутствует русский текст, и почему именно в кодировке 1251??

На каком уровне формируется текст именно этих ошибок? Mysql? PHP? ОС? еще ниже?

Другие ошибки php - на английском. Ошибки mysql (к примеру, об отсутствии БД или таблицы) - на английском. А вот mysql_connect() - отличился... что за фигня?

ВЕЗДЕ, где только возможно проставлены кодировки utf-8 (кроме локали - под виндой локаль c utf-8 через setlocale() выставить невозможно. Но она и не причем, выставлял у локали кодировку 866, а текст сообщения все равно в 1251).

Ну и в самой винде: chcp выдает 866, но это как бы кодировка интерпретатора команд... а вот ниже, на уровне Windows API, может из тех глубин прорываться ???
Winston
Посмотри файле где вызывается mysql_connect(). Покажи его здесь..
Может там or die() используется...
boatswain
да не, даже если отдельно запустить только mysql_connect('127.0.0.12', '', '');
(если, конечно, на этом интерфейсе не будет висеть mysql)
у меня сообщение об ошибке в кодировке 1251 выводится.
Говорят, что это системный api моей винды его таким и отдает... а следовательно, разные ОС (у разных хостеров) могут отдавать ответ в разных кодировках и языках.
Valick
Цитата
ВЕЗДЕ, где только возможно проставлены кодировки utf-8

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

_____________
Стимулятор ~yoomoney - 41001303250491
boatswain
возьмем скрипт с одной строкой:
mysql_connect('127.0.0.555', '', '').
т.к. IP 127.0.0.555 в принципе не может существовать, то ошибка на winXP_RU будет такая:
"php_network_getaddresses: getaddrinfo failed: Этот хост неизвестен."

PHP:
1. .htaccess - AddDefaultCharset UTF-8;
2. т.к. скрипт не содержит не_ASCII символы, то пофик в какой он кодировке, но все равно поставил utf8 %).
3. Локаль, как я уже упомянул, в utf8 на винде не поставить, но она не при чем, т.к. устанавливал на 866, но сообщение об ошибке все равно в 1251.

Mysql:
SHOW VARIABLES LIKE "char%":
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

в ОС:
уже тоже писал. И т.к., скорее всего, эта ошибка формируется на уровне системного API (ОС), то вот как посмотреть кодировку формируемого текста его функциями - я не знаю %(. Разные ОС - разные API. Вот как бы это на уровне PHP выяснять и с помощью того же iconv() перекодировать ??
Valick
а если сделать файл из двух строк?
<?php
header( 'Content-type: text/html; charset=utf-8' );
mysql_connect('127.0.0.555', '', '');
?>


_____________
Стимулятор ~yoomoney - 41001303250491
boatswain
ну, в .htaccess стоит AddDefaultCharset UTF-8

но в любом случае, пробовал задавать дополнительно и через header
и через <meta> - ниче не меняется - сообщение ошибки в кодировке 1251.
neadekvat
Я не понял, где и что вы ищете, но не увидел одного слова, так что напишу его здесь: mysql_set_charset('utf8');
Valick
neadekvat, до него (mysql_set_charset) дело не доходит

_____________
Стимулятор ~yoomoney - 41001303250491
neadekvat
О, теперь я понял, о чем речь в этой теме laugh.gif

Ошибка "Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение" -- она точно системная, потому что встречается.. много где.

А 1251, потому что кодировка системы такая, я так предполагаю. Какая-нибудь там "Кириллица" в настройках стоит. Сорри, хрюшкой уже много лет не пользуюсь, даже не вспомню, где там это искать. Где-нибудь в панели управления небось.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.