Модераторы: skyboy

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> определить кодировку базы и таблицы 
:(
    Опции темы
bars80080
Дата 21.5.2009, 12:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 5
Всего: 315



что-то не могу найти в документации, как сделать выборку на кодировку CHARACTER SET и COLLATION для базы данных

т.е. увидеть я её могу 
Код

SHOW CREATE database `dbname`

но потом в php придётся парсить результаты из 
Код

CREATE DATABASE `dbname` /*!40100 DEFAULT CHARACTER SET cp1251 */
что не хотелось бы. тем более я не могу определить COLLATION отсюда

нет какого-нибудь select?

тож самое для таблицы
PM MAIL WWW   Вверх
skyboy
Дата 21.5.2009, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 41
Всего: 260



обрати внимание на таблицу information_schema.tables
там должна быть подобная информация.
PM MAIL   Вверх
bars80080
Дата 21.5.2009, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 5
Всего: 315



да, направление верное. только там таблицы, а для баз данных нужна таблица schemata

вот только проблема, что вряд ли мне дадут подключиться на не своём хостинге, это же другая база данных.

так что, если есть путь через свою базу, хотел бы услышать

Добавлено через 6 минут и 12 секунд
да, не дали доступа. надо как-то через своё пытаться
PM MAIL WWW   Вверх
skyboy
Дата 21.5.2009, 16:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 41
Всего: 260



Цитата(bars80080 @  21.5.2009,  14:24 Найти цитируемый пост)
это же другая база данных.

на всех используемых мной хостингах доступна.
это ж информационная БД, насколько мне известно, запись в её таблица совсем-совсем невомзожна. как и во view'хи.
так что твои слова о том, что у тебя к ней нет доступа, меня удивляют.
как же ПО для работы с БД будет получать список имеющихся таблиц, view, триггеров и процедур, если не через information_schema? 0_o
PM MAIL   Вверх
bars80080
Дата 21.5.2009, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 5
Всего: 315



хм, специально проверял. сейчас ещё раз попробую

Добавлено через 6 минут и 34 секунды
нету, посмотрел список баз - все что создавали только мы. не знаю, насколько это часто встречается, но раз есть такой случай, придётся работать без information_schema
PM MAIL WWW   Вверх
skyboy
Дата 21.5.2009, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 41
Всего: 260



Цитата(bars80080 @  21.5.2009,  16:54 Найти цитируемый пост)
нету, посмотрел список баз - все что создавали только мы.

это в чем смотришь?
попробуй просто выполнить запрос:
Код

SELECT *
FROM information_schema.tables
LIMIT 1

PM MAIL   Вверх
bars80080
Дата 21.5.2009, 19:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 5
Всего: 315



я пробовал выбрать эту базу mysql_select_db('information_schema') и затем show tables, а также просто из-под своей базы сделать show databases.
в первом случае выбрать базу не удавалось, соответственно ошибку выдавало, во втором случае показывались только те базы, которые мы сами создавали
PM MAIL WWW   Вверх
skyboy
Дата 21.5.2009, 19:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 41
Всего: 260



Цитата(skyboy @  21.5.2009,  15:16 Найти цитируемый пост)
будет получать список имеющихся таблиц

да, тут я погорячился. есть же show tables.
кстати, а версия mysql какая?
PM MAIL   Вверх
bars80080
Дата 21.5.2009, 22:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 5
Всего: 315



сейчас не скажу, только завтра с работы. скорее всего 4-ая с чем-то

PM MAIL WWW   Вверх
lelik133
Дата 22.5.2009, 08:33 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 517
Регистрация: 5.2.2003
Где: Москва

Репутация: 2
Всего: 14



information_shema появилась только в 5-ой
PM ICQ   Вверх
bars80080
Дата 22.5.2009, 10:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 5
Всего: 315



нет, ошибся

mysql
Client API version  5.1.16-beta  

это пхп 4.4.9, а апач 1.3.37
PM MAIL WWW   Вверх
Бонифаций
Дата 22.5.2009, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 827
Регистрация: 15.9.2005
Где: Brisbane

Репутация: 20
Всего: 40



Код

mysql> show variables like '%char%';
+--------------------------+----------------------------------+
| Variable_name            | Value                            |
+--------------------------+----------------------------------+
| character_set_client     | latin1                           | 
| character_set_connection | latin1                           | 
| character_set_database   | latin1                           | 
| character_set_filesystem | binary                           | 
| character_set_results    | latin1                           | 
| character_set_server     | latin1                           | 
| character_set_system     | utf8                             | 
| character_sets_dir       | /opt/mysql/share/mysql/charsets/ | 
+--------------------------+----------------------------------+
8 rows in set (0,00 sec)

mysql> show variables like '%coll%';
+----------------------+-------------------+
| Variable_name        | Value             |
+----------------------+-------------------+
| collation_connection | latin1_swedish_ci | 
| collation_database   | latin1_swedish_ci | 
| collation_server     | latin1_swedish_ci | 
+----------------------+-------------------+
3 rows in set (0,01 sec)





--------------------
 Бонифаций.
 
PM MAIL ICQ Skype GTalk Jabber YIM   Вверх
bars80080
Дата 22.5.2009, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 5
Всего: 315



так так, а это данные character_set_database, collation_database по текущей базе данных?
а по другой?
а по таблице как тогда узнать?

надо наверное сразу было задачу осветить



модуль по работе с БД. 
1. при выборе БД надо выставить определённый set names, соответствующий БД
2. при редактировании БД надо показать существующий character и collation для неё
3. то же самое по таблице, чтобы вносимые и корректируемые данные всегда находились в нужной кодировке (табличной)

если эти данные указывают только на текущие переменные, то вряд ли подойдёт, ведь set names надо принудительно выставлять

... надо подумать и потестить
PM MAIL WWW   Вверх
Бонифаций
Дата 22.5.2009, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 827
Регистрация: 15.9.2005
Где: Brisbane

Репутация: 20
Всего: 40



Цитата

при выборе БД надо выставить определённый set names, соответствующий БД


Нет. Вы не поняли. Set names нужно выставлять исходя из кодировки клиента, чтобы mysql знал во что конвертировать на лету данные из базы. 


--------------------
 Бонифаций.
 
PM MAIL ICQ Skype GTalk Jabber YIM   Вверх
bars80080
Дата 22.5.2009, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 5
Всего: 315



интересно. т.е. один раз при подключении set names выставили в соответствии с 
Код
<?php
header('Content-Type: text/html; charset=cp1251');
/******************************************************************************/
?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml " lang="en" xml:lang="en">
<head>
  <meta http-equiv="Content-type" content="text/html; charset=windows-1251" />
с клиентом, и всё? а дальше, если у нас база utf8, то она и будет сохранять данные в utf8 ?
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0982 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.