Проблема с русским текстом в MySQL

Обсуждение серверного программирования.

Модераторы: Duncon, Yurich

Ответить
Вадим Пишков
Сообщения: 16
Зарегистрирован: 24 май 2006, 01:59
Откуда: г. Ижевск, Россия
Контактная информация:

Apache 1.3.27
PHP 4.3.0
MySQL 3.23.53

phpMyAdmin - 2.9.2

Все, кроме phpMyAdmin поставлено с джентльменского набора web-разработчика Денвер-2 ([url]http://web.dklab.ru)[/url].

Проблема такая:
есть БД, в ней таблица sections. В таблице sections поля varchar. Введенные через phpMyAdmin русские значения для этих полей в том же phpMyAdmin'е смотрятся нормально. При попытке затащить их в программу при помощи следующего кода:

Код: Выделить всё

		$query = "SELECT * FROM sections";
		$result = mysql_query($query);

		while ( $section_arr = mysql_fetch_row($result) ) {
			list($id, $name, $title) = $section_arr;
			print $id."|".$name."|".$title."
";
		};
Поля, значения в которые введены русскими буквами, выводятся в виде: календарь.

В my.cnf есть строчка: default-character-set=cp1251
На запрос

Код: Выделить всё

 		print mysql_client_encoding (); 
программа выводит latin.

Что делать?
Очень рассчитываю на вашу помощь!
PhpRu
Сообщения: 4
Зарегистрирован: 06 ноя 2006, 20:45
Откуда: Москва
Контактная информация:

Ну решение в общем случае
Если вы логинитесь к базе как root?njulf сразу после коннекта к базе перед любыми запросами на выбрку нужно прописать
mysql_query("SET NAMES cp1251");
для не-root пользователей прописана директива
init-connect="SET NAMES cp1251" в /usr/local/mysql4/my.cnf
isms.ru
Сообщения: 48
Зарегистрирован: 11 янв 2007, 16:45

пхпмайадмин настроен на другую кодировку. например на отображение в юникоде, т.е. он и пишет и показывает в юникоде, т.е. правильно, а по пытается в вин1251 вытащить и облом.
а также поставь принудительно для таких полей кодировку. тьфу, для 3 версии это не ставится.
Вадим Пишков
Сообщения: 16
Зарегистрирован: 24 май 2006, 01:59
Откуда: г. Ижевск, Россия
Контактная информация:

Спасибо, ребят.
Обновил БД, php и все заработало.
Ответить