mysql_client_encoding и mysql_connect

papalama

Новичок
mysql_client_encoding и mysql_connect

С одной стороны говорят, что mysql_client_encoding возвращает кодировку на момент установки соединения,
с другой, что mysql_connect соединяется только в latin1.

Врут?
 

zerkms

TDD infected
Команда форума
show variables like 'char%'

этот запрос в рантайме покажет тебе всё как есть на самом деле.
 

Фанат

oncle terrible
Команда форума
я с утра, наверное, соображаю плохо, но как связаны эти два утверждения между собой и почему врут?
 

papalama

Новичок
что там на самом деле я знаю )

мне непонятно зачем вообще нужна mysql_client_encoding, если сказать она может только то, как соединилась mysql_connect, т.е. только latin1
 

King

Новичок
mysql_client_encoding() возвращает значение кодировки по умолчанию, т.е. значение default-character-set из my.ini.
 

papalama

Новичок
на php.net написано mysql_client_encoding() возвращает название кодировки, с которой работет текущее соединения.
в my.ini в [mysqld] у меня написано default-character-set=cp1251
а возвращается latin1
 

vovanium

Новичок
papalama
Почитай для чего предназначен параметр default-character-set

The default character set that will be used when a new schema or table is created and no character set is defined
На кодировку клиента она не влияет
 

papalama

Новичок
о, mysql_set_charset() меняет кодировку!
соответственно меняется и значение, возвращаемое mysql_client_encoding()
только почему-то в "cp1251" менять не хочет ))

пробовал на одном хостинге, там сразу после mysql_connect() и mysql_select_db(), mysql_client_encoding() возвращает "cp1251" - как они так сумели?
 
Сверху