PDA

Просмотр полной версии : Просблема с Мускулом


Tem
13.11.2007, 22:10
Уже неделю вожусь, некто нечего конкретно не сказал, востонавливаю форум из бэкапа, Ipb 2.1.7 бэкап брал через админку, всё работает ок но вот на форуме самом ????????????????? места текста , как сней справится ?

cardons
13.11.2007, 22:11
перекодируй в другой формат. к примеру из utf-8 в win-1251

Tem
13.11.2007, 22:12
В пхпмайадмине ставлю СРАВНЕНИЕ всякие не катит.

Sn@k3
13.11.2007, 22:19
1) в файлиге бекапа ищи файлы лангуагес в заголовке смотри кодировку
2) посмотри на кодлировку твоего браузера))))
было такое, тока с булкой

mr.The
13.11.2007, 22:32
сразу после коннекта к бд напиши php код.

mysql_query(\"SET NAMES CP1251\");
mysql_query(\"SET COLLATION_CONNECTION=CP1251_GENERAL_CI\");

тока слеши убери =|

ant0ha
13.11.2007, 22:40
В пхпмайадмине ставлю СРАВНЕНИЕ всякие не катит.
у каждой таблицы указывается своя кодировка, может она у тебя не совпадает с той что указана в сравнении

Tem
13.11.2007, 23:51
Вы знаете проблема в том что я снимал бэкап через админку форума , а не через phpMyAdmin

NOmeR1
16.11.2007, 00:39
Tem, похоже тебе очень не повезло. У меня была такая проблема, востонавить не удалось. Всё в бд записалось в этих вопросительных знаках. Посмотри какую-нибудь таблицу, если там вопросительные знаки вместо слов, то прощай форум. :(

Joker-jar
16.11.2007, 06:51
Только вместо русских символов вопросы?У меня в phpbb2 была такая шняга. Вылечил так: выполнил поиск по текстам скриптов форума, нашел, где находится функции коннекта к БД:

mysql.php ->

if($this->persistency)
{
$this->db_connect_id = @mysql_pconnect($this->server, $this->user, $this->password);
}
else
{
$this->db_connect_id = @mysql_connect($this->server, $this->user, $this->password);
}
заменил на

if($this->persistency)
{
$this->db_connect_id = @mysql_pconnect($this->server, $this->user, $this->password);
}
else
{
$this->db_connect_id = @mysql_connect($this->server, $this->user, $this->password);
}
mysql_query("SET NAMES cp1251");

mysql4.php ->

$this->db_connect_id = ($this->persistency) ? mysql_pconnect($this->server, $this->user, $this->password) : mysql_connect($this->server, $this->user, $this->password);
заменил на

$this->db_connect_id = ($this->persistency) ? mysql_pconnect($this->server, $this->user, $this->password) : mysql_connect($this->server, $this->user, $this->password);
mysql_query("SET NAMES cp1251");
и все стало работать

Tem
16.11.2007, 14:07
Нет в базе нету не однорго знака ?????????????? , эти знаки в выводе, а вот где мне найти такой файл в Ipb там немнога сэтим трудновато.

groundhog
16.11.2007, 14:20
Не знаю какая у тебя версия, но попробуй в файл class_dbmysql.php в определении метода connect() у класса db_driver после строк:


if ($this->obj['persistent'])
{
$this->connection_id = mysql_pconnect( $this->obj['sql_host'] ,
$this->obj['sql_user'] ,
$this->obj['sql_pass']
);
}
else
{
$this->connection_id = mysql_connect( $this->obj['sql_host'] ,
$this->obj['sql_user'] ,
$this->obj['sql_pass']
);
}

if ( ! $this->connection_id )
{
$this->fatal_error();
return FALSE;
}

вставить такие строчки:

mysql_query("SET NAMES CP1251", $this->connection_id);
mysql_query("SET COLLATION_CONNECTION=CP1251_GENERAL_CI", $this->connection_id);

Tem
16.11.2007, 15:29
Версия форума ipb 2.1.7

groundhog
16.11.2007, 15:38
Ну тогда рецепт применим... Только бекап сделать не забудь изменяемого скрипта. Файл находится в дире ips_kernel.