Printable Version of Topic
Click here to view this topic in its original format
Forums > Глюкодром > Php-nuke + MySQL, Кодировка


Posted by: ego on 27-10-2005, 17:04
Есть проблема ,может кто сталкивался
На сервере в MySQL 4.1.10a в phpMyAdmin 2.6.4-pl1 по умолчанию выставлена кодировка UTF-8 Unicode (utf8)
Когда я заливаю базу данных из PHP-Nuke 7,9 рус которая в кодировке win cp1251 то в итоге получаю всю нюку в знаках вопросов.Пытался менять кодировку в nuke.sql (посоветуйте прогу для этого я делал ИЕ).
В файле db.php после запроса к базе добавил
}

$db = new sql_db($dbhost, $dbuname, $dbpass, $dbname, false);
mysql_query("SET NAMES 'cp1251'");
if(!$db->db_connect_id) {
тоже не помогает

Сопоставление соединения с MySQL: тоже выставлял нужную кодировку.Когда саму базу заливал тоже указывал нужную кодировку файла.
Даже незнаю что делать.Изменить кодировку по умолчанию нельзя потому как там еще бегает вобла которая нормально работает UTF-8 Unicode (utf8) кодировкой и если изменить то форум будет тогда весь в вопросиках тоже.
Хостер сказал мол
QUOTE:
Выход, добавить SQL-запрос после соединения с БД:
SET NAMES cp1251

После заливки базы все таблицы в latin1_swedish_ci.Я гдето читал что можно сразу всей базе или таблицам поменять кодировку в phpMyAdmin я такой опции не нашел.
Поможет ли если изменить во всех полях кодировку вручную?
Вот теперь незнаю что делать,нужна именно эта нюка на сайте.
На предмет вопроса гуглил уже,ничего толкового не нашел
http://fanguru.com/index.php (http://fanguru.com/index.php

Posted by: irage on 27-10-2005, 17:41
mysql_query ("set character_set_client='cp1251'", $link);
mysql_query ("set character_set_results='cp1251'", $link);
mysql_query ("set collation_connection='cp1251_general_ci'", $link);

Posted by: ego on 27-10-2005, 17:49
Спасибо за отклик

вставил

QUOTE :
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/fanguru/domains/fanguru.com/public_html/db/db.php on line 95

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/fanguru/domains/fanguru.com/public_html/db/db.php on line 96

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/fanguru/domains/fanguru.com/public_html/db/db.php on line 97

неправильный аргумент говорит,вставил только первый тоже самое толко в 95 строке
убрал переменную

, $link

получил

Parse error: parse error, unexpected $ in /home/fanguru/domains/fanguru.com/public_html/db/db.php on line 80

Posted by: ego on 27-10-2005, 17:59
вот на всяк случ весь файл

А что за переменная $link ?

<?php
/***************************************************************************
* db.php
* -------------------
* begin : Saturday, Feb 13, 2001
* copyright : (C) 2001 The phpBB Group
* email : support@phpbb.com
*
* Id: db.php,v 1.10 2002/03/18 13:35:22 psotfx Exp
*
*
***************************************************************************/

/***************************************************************************
* This file is part of the phpBB2 port to Nuke 6.0 (c) copyright 2002
* by Tom Nitzschner (tom@toms-home.com)
* http://bbtonuke.sourceforge.net (http://bbtonuke.sourceforge.net (or http://www.toms-home.com) (http://www.toms-home.com)
*
* As always, make a backup before messing with anything. All code
* release by me is considered sample code only. It may be fully
* functual, but you use it at your own risk, if you break it,
* you get to fix it too. No waranty is given or implied.
*
* Please post all questions/request about this port on http://bbtonuke.sourceforge.net (http://bbtonuke.sourceforge.net first,
* then on my site. All original header code and copyright messages will be maintained
* to give credit where credit is due. If you modify this, the only requirement is
* that you also maintain all original copyright messages. All my work is released
* under the GNU GENERAL PUBLIC LICENSE. Please see the README for more information.
*
***************************************************************************/

/***************************************************************************
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
***************************************************************************/

if (stristr($_SERVER['PHP_SELF'], "db.php")) {
Header("Location: index.php");
die();
}

if (defined('FORUM_ADMIN')) {
$the_include = "../../../db";
} elseif (defined('INSIDE_MOD')) {
$the_include = "../../db";
} else {
$the_include = "db";
}

switch($dbtype) {

case 'MySQL':
include("".$the_include."/mysql.php");
break;

case 'mysql4':
include("".$the_include."/mysql4.php");
break;

case 'sqlite':
include("".$the_include."/sqlite.php");
break;

case 'postgres':
include("".$the_include."/postgres7.php");
break;

case 'mssql':
include("".$the_include."/mssql.php");
break;

case 'oracle':
include("".$the_include."/oracle.php");
break;

case 'msaccess':
include("".$the_include."/msaccess.php");
break;

case 'mssql-odbc':
include("".$the_include."/mssql-odbc.php");
break;

case 'db2':
include("".$the_include."/db2.php");
break;

}

$db = new sql_db($dbhost, $dbuname, $dbpass, $dbname, false);
mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");
if(!$db->db_connect_id) {
die("<br><br><center><b>Извините за временное неудобство.<br><br>Есть
проблема с Базой Данных $dbtype сервера.<br><br>Мы скоро вернемся.</center></b>");
}

?>

Posted by: irage on 27-10-2005, 20:02
$link - это id соединения с базой. Попробуй заменить $link в моем примере на $db.

Posted by: Uzaren on 27-10-2005, 20:19
Создай файл .htaccess в нём напиши вот это
CODE
AddDefaultCharset windows-1251

И положи его в диру где лежит Nuke

Posted by: irage on 27-10-2005, 20:22
QUOTE (Uzaren @ 27-10-2005, 22:19):
Создай файл .htaccess в нём напиши вот это
CODE

AddDefaultCharset windows-1251


И положи его в диру где лежит Nuke
:fear2:

Уз, это тонкая шутка???

Posted by: ego on 27-10-2005, 20:51
irage не помогло c $db :&#040;

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/fanguru/domains/fanguru.com/public_html/db/db.php on line 95 .................


я так понял эти запросы для того чтобы он с базой правильно работал,тоесть брал в правильной кодировке и отдавал.Но в самой базе у меня все latin1_swedish_ci.Может чего не так заливается.Локально у меня все окей с денвером а вот серваке не сложилось там мускул новее и phpMyAdmin.
Я локально сделал дамб,залил, вся таблица в поле сравнения была как положено cp1251 но вопросики не исчезли :&#040;

Uzaren это наверно для браузера?

Posted by: Set on 27-10-2005, 21:41
Попробуй "SET CHARACTER SET utf8" в SQL

Posted by: irage on 27-10-2005, 22:07
Не боись, разберемся. Я тебе давал пример для родных функций PHP для работы с MYSQL, судя по всему нюк использует еще один способ, аналог ODBC. То что база по умолчанию в swedish не должно быть проблемой, самое главное всадить три SQL запроса сразу после функции соединения с базой. Можно попробовать вместо $link использовать $db, только всадить это надо после этого куска:

CODE

if(!$db->db_connect_id) {
die("<br><br><center><b>Извините за временное неудобство.<br><br>Есть
проблема с Базой Данных $dbtype сервера.<br><br>Мы скоро вернемся.</center></b>");
}


Именно здесь переменной $db присваивается идентификатор соединения. По любому, если не получится я сейчас подчитаю описание функций и твою проблему решим.

Posted by: irage on 27-10-2005, 22:36
чего то я не могу найти 6-ю версию, они уже 7-ку раздают. Запость содержание mysql4.php плиз.

Posted by: Uzaren on 27-10-2005, 22:41
QUOTE (irage @ 27-10-2005, 19:22):
Уз, это тонкая шутка???
У меня была похожая проблема с Invision форумом, отображалась всякая крякозябра, то есть апачи был настроен, на UTF8 , вот эта самая шутка и помогла мне.
Или я что-то не так понял?

Posted by: ego on 27-10-2005, 23:02
спасибочки irage ты меня обнадежил,мне даже неудобно. :&#041; щас попробую вставить правильно в бд.пчп

тут (http://www.phpnuke.ru/modules.php?name=Files&go=view_file&lid=718 версия нюки 7.9

тут (http://fanguru.com/test/mysql4.rar только mysql4.php

добавлено

QUOTE:
}

$db = new sql_db($dbhost, $dbuname, $dbpass, $dbname, false);
if(!$db->db_connect_id) {
   die("<br><br><center><img src=images/logo.gif><br><br><b>There seems to be a problem with the $dbtype server, sorry for the inconvenience.<br><br>We should be back shortly.</center></b>");
mysql_query ("set character_set_client='cp1251'", $db);
mysql_query ("set character_set_results='cp1251'", $db);
mysql_query ("set collation_connection='cp1251_general_ci'", $db);
}

?>

ничего

опустил за }

получил

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/fanguru/domains/fanguru.com/public_html/db/db.php on line 98/99/100

Posted by: ego on 27-10-2005, 23:18
QUOTE (Uzaren @ 27-10-2005, 11:41):
QUOTE (irage @ 27-10-2005, 19:22):
Уз, это тонкая шутка???
У меня была похожая проблема с Invision форумом, отображалась всякая крякозябра, то есть апачи был настроен, на UTF8 , вот эта самая шутка и помогла мне.
Или я что-то не так понял?
мне кажется ,но я не уверен :&#041; это чтобы браузер с нужной кодировкой открывал.
Я пробовал не то

Posted by: irage on 27-10-2005, 23:57
Хм. ООП. Это конечно хоорошо, но не всегда я люблю ООП. Можно попробовать так (это кусок mysql4.php):

CODE

//
// Base query method
//
function sql_query($query = "", $transaction = FALSE)
{
//
// Remove any pre-existing queries
//
unset($this->query_result);

if( $query != "" )
{
$this->num_queries++;
if( $transaction == BEGIN_TRANSACTION && !$this->in_transaction )
{
$result = mysql_query("BEGIN", $this->db_connect_id);
if(!$result)
{
return false;
}
$this->in_transaction = TRUE;
}

$this->query_result = mysql_query($query, $this->db_connect_id);



так вот, можно перед последней строкой $this->query_result = mysql_query($query, $this->db_connect_id); вставить:

CODE

$this->query_result = mysql_query("set character_set_client='cp1251'", $this->db_connect_id);
$this->query_result = mysql_query("set character_set_results='cp1251'", $this->db_connect_id);
$this->query_result = mysql_query("set collation_connection='cp1251_general_ci'", $this->db_connect_id);

Posted by: ego on 28-10-2005, 00:26
вставил,круто :&#041;

Огромное тебе спасибо irage .Эххх когда руки до самого пчп доростут.Пока только в нюке с горем пополам и с помощью :&#041;

теперь пишет на русском и читает новые посты тоже на русском....но с самой базой всеравно что то не так :&#040; главная всеравно в вопросах.Очевидно залилось чтото не так.Но

Но это уже хорошо,всеравно буду там все менять потихоньку

Posted by: irage on 28-10-2005, 00:52
QUOTE (ego @ 28-10-2005, 02:26):
вставил,круто :&#041; теперь пишет на русском и читает новые посты тоже на русском....но с самой базой всеравно что то не так :&#040; главная всеравно в вопросах.

Но это уже хорошо всеравно буду там все менять потихоньку
Главная может не использовать этот файл, особенно если это какой-то мод. Поищи где главная обращается к базе и подправь. А почему ты думаешь что с базой что-то не так?

Posted by: ego on 28-10-2005, 00:55
все просто... сейчас пишу посты и все такое все пишется хорошо.Все что касаемо самой нюки веб формы и все такое тоже гуд.А вот то что изначально типа первые посты на главной меню которые в базе сидят все в вопросах,щас если захожу меняю на русс все ок
Может всетаки саму базу надо было переделать?

Posted by: ego on 28-10-2005, 01:10
хм... создал юзера с русским именем,так немогу теперь ним залогинится,неужто что то всетаки не так :&#040;

в таблице вместо русского юзера и его данных кракозябры
убрал все изменения опять создал юзера всеравно кракозябры

А нельзя ли как всю базу пока она маленькая перегнать в нормальную кодировку?
Я пробовал в ютф8 с помощью ИЕ.Оно не помогало может есть другие способы какие?

тут похожая трабла они чего то там с базой делали (http://www.forum.slavhost.ru/about122-0-asc-45.html

Posted by: ego on 28-10-2005, 14:02
вот прошелся еще раз по сайтам,в одном месте сказали то базу нужно заливать в latin1 тоесть указать такую кодировку файла,прошло на ура хотя во всех мануала пишут что именно cp1251
Только в базе кракозябры если например делаю юзера с русским именем.Но в самой нюке все ок.

если так

mysql_query ("set character_set_client='latin1'");
mysql_query ("set character_set_results='latin1'");
mysql_query ("set collation_connection=' latin1_swedish_ci'");

то ничего,пишет кракозябры в базу

если вставляю

mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");

то получаю знаки вопросов на главной

Posted by: ego on 29-10-2005, 19:42
вобщем решил я это дело тоесть отображается на русском и на сайте и в базе
для этого я вставил В файле mainfile.php (выделено жирным)

QUOTE:
       require_once("includes/sql_layer.php");
       $dbi = sql_connect($dbhost, $dbuname, $dbpass, $dbname);
}
mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");

$mainfile = 1;

и воспользовавшись дампером от нюки перелил базу и онеа получила нужное сравнение тоесть cp1251_general_ci

Спасибо всем за помощь

Posted by: ego on 04-11-2005, 02:03
всетаки решили мы выставить кодировку по умолчанию а то каждый раз копаться в коде напрягает и бекап выходит с каракулями

Подскажите что написать вместо CREATE TABLE в базе INSERT или UPDATE чтобы заменило то что есть и не ругалось на то что такие таблицы уже существуют?

вот решил сделать бекап базы ввожу в шел
[эго@55 ~]# mysql -u юзер -p forumjoy_forum>/home/forumjoy/backup.sql;   
Enter password:

после ввода пасса молчание и создается файл нулевой длины,что не так?

Posted by: irage on 04-11-2005, 03:12
QUOTE (ego @ 04-11-2005, 04:03):
всетаки решили мы выставить кодировку по умолчанию а то каждый раз копаться в коде напрягает и бекап выходит с каракулями

Подскажите что написать вместо CREATE TABLE в базе INSERT или UPDATE чтобы заменило то что есть и не ругалось на то что такие таблицы уже существуют?

вот решил сделать бекап базы ввожу в шел
[эго@72 ~]# mysql -u юзер -p forumjoy_forum>/home/forumjoy/backup.sql;   
Enter password:

после ввода пасса молчание и создается файл нулевой длины,что не так?
я не совсем понял что ты именно хочешь сделать. INSERT и UPDATE - это операции с записями. Если тебе надо поменять таблицы то надо использовать ALTER TABLE. Что не так невозможно сказать по причине незнания содержимого backup.sql

И почему ты с базой из шелла работаешь? Удобней использовать какой-нибудь менеджер вроде EMS MySQL manager или phpMyAdmin на крайний случай.

Posted by: ego on 04-11-2005, 04:37
шелл это все что есть)) phpMyAdmin у него там органичение на заливаемую базу в 2 мега.А например Мускул Администратор не пускает сервак.Сервер рабочий я стремаюсь туда ставить что попало,юзаю то что есть))

Я сделал бекап,имею проблемы с кодировками,страшное дело.Пытаюсь поправить но штирлиц на 15 мегах виснет,в линуксе есть куча прог но например коменты к таблицам пишет на русском а контент ячеек на русском кракозябры.
Вот после снятия бекапа все там CREATE TABLE стоит,тоесть чтобы откатиться нужно стереть все.А я хочу просто заменить то что есть в файле запросов.

Ну вот просто этой командой я хотел через шел сделать бекап того что есть но выходит файл пустой может я чего не так написал?

Posted by: FiL on 04-11-2005, 04:44
бакап делается коммандой mysqldump.

Posted by: ego on 04-11-2005, 05:12
FiL  спасиб,понял :&#041;

Posted by: Uzaren on 04-11-2005, 10:41
А  ещё есть классный скрипт, котрый делает бекап, много раз им пользовался, всё очень просто и удобно.
Скачать (http://zapimir.net/skdumper/download/sk_dumper_106.zip
Все подробности и описания здесь Site Keeper Dumper LE (http://zapimir.net/skdumper/

user posted image user posted image

Posted by: ego on 04-11-2005, 17:16
Uzaren  да я тоже его обнаружил ,спасибо

Posted by: ego on 05-11-2005, 08:15
может кто подскажет какой запрос к мускулу надо выполнить чтобы изменить поле
Сравнение с latin1...  на          cp1251_general_ci  во всей таблице сразу.

Posted by: irage on 05-11-2005, 12:07
QUOTE (ego @ 05-11-2005, 10:15):
может кто подскажет какой запрос к мускулу надо выполнить чтобы изменить поле
Сравнение с latin1...  на          cp1251_general_ci  во всей таблице сразу.
Именно одно поле? Тогда:

CODE

ALTER TABLE `имя таблицы` CHANGE `имя поля` `имя поля` CHAR( 1 ) CHARACTER SET cp1251 COLLATE cp1251_general_ci NOT NULL


только CHAR(1) поменяй на структуру твоего поля.

Posted by: ego on 05-11-2005, 22:33
QUOTE:
`имя поля` `имя поля` CHAR( 1 )

тоесть я могу дать команду одной таблице и мне нужно ввести все поля а что такое CHAR( 1 ) я несовсем понял....

я может неправильно высказался...имя поля я имел это название столбца  "сра&#1490;внение"

К примеру есть таблица,нужно Везде изменить ,тоесть везде где я вижу в столбце эту кодировку latin1.Я я похожую команду в мануале видел к мускулу,пойду гляну. :&#041;

Posted by: obaldin on 06-11-2005, 00:44
QUOTE (ego @ 05-11-2005, 21:33):
я может неправильно высказался...имя поля я имел это название столбца  "сранение"
Ты имел в виду что-то вроде

UPDATE таблица SET Сравнение='cp1251'

?

Posted by: ego on 06-11-2005, 01:01
QUOTE (obaldin @ 05-11-2005, 13:44):
QUOTE (ego @ 05-11-2005, 21:33):
я может неправильно высказался...имя поля я имел это название столбца  "сранение"
Ты имел в виду что-то вроде

UPDATE таблица SET Сравнение='cp1251'

?
аха...причем везде хочу :&#041;

звание штатного телепата потверждаю  ;&#041;

Posted by: irage on 06-11-2005, 01:05
ты написал

QUOTE:
может кто подскажет какой запрос к мускулу надо выполнить чтобы изменить поле

обрати внимание на последнее слово - поле это не таблица. Что просил, то и получил  ;&#041;

Posted by: irage on 06-11-2005, 01:11
Ах да, забыл совсем:

CODE

ALTER DATABASE `имя таблицы` DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci

Posted by: ego on 06-11-2005, 01:21
хех,спасибо всем за помщь и терпение :&#041;
Хех,да я понял уже что лажанулся :D

Posted by: obaldin on 06-11-2005, 01:50
QUOTE (ego @ 06-11-2005, 00:01):
аха...причем везде хочу :&#041;
Здесь уже не понимаю :&#041;

QUOTE:
звание штатного телепата потверждаю  ;&#041;
Не, куда уж мне... Так, могу от случая к случаю в хрустальный шар глянуть, но не более

Posted by: FiL on 06-11-2005, 02:01
QUOTE (ego @ 05-11-2005, 16:33):
я может неправильно высказался...имя поля я имел это название столбца  "сранение"
странные у тебя поля в таблице...

Posted by: ego on 06-11-2005, 16:48
вы уж извените мне мои ламерские выпады,тольго постигаю азы этого,так что вполне может быть непонятка с трактовками  :&#041;

QUOTE :
CHAR( 1 )
вот это где посмотреть и что это я так и непонял.

Есть база данных форума вобла.В ней таблицы разные никак неполучается изменить чарсет везде где только можно.Когда устанавливаю воблу он автоматом ставит тот чарсет который по умолчанию на мускуле.Может когда устанавливаю форум в файле mysql-schema.php  дето добавить чарсеты?Вот фрагмент

QUOTE:


error_reporting(E_ALL & ~E_NOTICE);

define('SCHEMA', 'mysql');

if (!is_object($db))
{
        die('<strong>MySQL Schema</strong>: $db is not an instance of the vB Database class. This script requres the escape_string() method from the vB Database class.');
}

$phrasegroups = array();
$specialtemplates = array();

// Check userfield table is still used and how long the default length should be

$schema['CREATE']['query']['access'] = "
CREATE TABLE " . TABLE_PREFIX . "access (
        userid INT UNSIGNED NOT NULL DEFAULT '0',
        forumid SMALLINT UNSIGNED NOT NULL DEFAULT '0',
        accessmask SMALLINT UNSIGNED NOT NULL DEFAULT '0',
        PRIMARY KEY userid (userid, forumid)
)
";
$schema['CREATE']['explain']['access'] = sprintf($vbphrase['create_table'], TABLE_PREFIX . "access");

$schema['CREATE']['query']['adminhelp'] = "
CREATE TABLE " . TABLE_PREFIX . "adminhelp (
        adminhelpid INT UNSIGNED NOT NULL AUTO_INCREMENT,
        script VARCHAR(50) NOT NULL DEFAULT '',
        action VARCHAR(25) NOT NULL DEFAULT '',
        optionname VARCHAR(25) NOT NULL DEFAULT '',
        displayorder SMALLINT UNSIGNED NOT NULL DEFAULT '1',
        volatile SMALLINT UNSIGNED NOT NULL DEFAULT '0',
        PRIMARY KEY (adminhelpid),
        product VARCHAR(25) NOT NULL,
        UNIQUE KEY phraseunique (script, action, optionname)
)
";
$schema['CREATE']['explain']['adminhelp'] = sprintf($vbphrase['create_table'], TABLE_PREFIX . "adminhelp");



$schema['CREATE']['query']['administrator'] = "
CREATE TABLE " . TABLE_PREFIX . "administrator (
        userid INT UNSIGNED NOT NULL DEFAULT '0',
        adminpermissions INT UNSIGNED NOT NULL DEFAULT '0',
        navprefs MEDIUMTEXT NOT NULL,
        cssprefs VARCHAR(250) NOT NULL,
        notes MEDIUMTEXT NOT NULL,
        languageid SMALLINT UNSIGNED NOT NULL DEFAULT '0',


        PRIMARY KEY (userid)


Posted by: ego on 06-11-2005, 17:07
QUOTE:
ALTER TABLE `имя таблицы` DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci
вот так проконало...поменялась конкретная таблица теперь,а т поля в ней не меняются?Можно что нить глобальное такое?

Posted by: Set on 06-11-2005, 18:29
Для мускула есть родные утилиты с нормальным GUI: MySQL Administrator, MySQL Query Browser. В них можно посмотреть какие запросы и как.

Posted by: ego on 06-11-2005, 21:19
QUOTE (Set @ 06-11-2005, 07:29):
Для мускула есть родные утилиты с нормальным GUI: MySQL Administrator, MySQL Query Browser. В них можно посмотреть какие запросы и как.
я уже писал,что нету доступа,или шелл или пчпмайадмин

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

Posted by: irage on 06-11-2005, 22:08
QUOTE (ego @ 06-11-2005, 23:19):
QUOTE (Set @ 06-11-2005, 07:29):
Для мускула есть родные утилиты с нормальным GUI: MySQL Administrator, MySQL Query Browser. В них можно посмотреть какие запросы и как.
я уже писал,что нету доступа,или шелл или пчпмайадмин

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

В phpmyadmin чарсеты прекрасно меняются для чего угодно, не знаю в чем у тебя проблема.

Вот что я бы попрбовал. Так как ты умеешь изменять чарсет у базы, можно сделать так.

1. Создаешь базу для своего нюка с нуля. При создании или сразу после указываешь нужный чарсет и collate.

2. Судя по содержимому mysql-schema.php чарсеты у тебя явно не указаны, поэтому помоему они должны унаследоваться от родительской базы.


Posted by: ego on 06-11-2005, 22:30
попробую,спасибо

Posted by: Set on 06-11-2005, 23:11
QUOTE (ego @ 06-11-2005, 21:19):
QUOTE (Set @ 06-11-2005, 07:29):
Для мускула есть родные утилиты с нормальным GUI: MySQL Administrator, MySQL Query Browser. В них можно посмотреть какие запросы и как.
я уже писал,что нету доступа,или шелл или пчпмайадмин
Поставь на десктоп и извращайся, как заработает - применишь на серваке.

Posted by: ego on 06-11-2005, 23:28
да на десктопе есть и клиент и все остальное,работает все без танцев с бубнами

Posted by: ego on 08-11-2005, 02:50
непомогает ,в принудительной таблице создается все ок у все полей правильная кодировка но... все теперь в вопросиках пошло...

в вовбле нашел такую вот опцию в конфиг.пчп ,но тоже не помогает

QUOTE:
// Дополнительно для Mysql 4.1.13+ или 5.1.10+ и PHP 5.1.0+ вы можете установить кодировку
// символов после завершения соединения с базой данных. $config['Mysqli']['charset'] = 'ср1251';

Посмотрел на серваке нет никаких файлов для чарсетов,в смысле
/usr/local/mysql4/share/charsets
нету такого,вот и получается что значит на серваке и не может быть никаких кодировок кроме ютф8

Posted by: Brait on 08-11-2005, 05:37
QUOTE (ego @ 08-11-2005, 09:50):
непомогает ,в принудительной таблице создается все ок у все полей правильная кодировка но... все теперь в вопросиках пошло...
После создания коннекта к базе самый первый запрос должен быть:
CODE

SET NAMES 'cp1251';


Это полный аналог группы команд:
CODE

SET character_set_client = 'cp1251';
SET character_set_connection = 'cp1251';
SET character_set_results = 'cp1251';


Судя по всему, у vB работа с базой вынесена в отдельный класс. Найди его, и в функции соединения с базой, после вызова mysql_connect(), выполни mysql_query("SET NAMES 'cp1251'"). Только поосторожней, там может оказаться всяческая проверка на правильность соединения и т.д. Тогда команду лучше поставить уже после проверки...

В результате у тебя скрипт будет отправлять данные в windows-1251 (set_client), сервер будет работать с данными в режиме windows-1251 (set_connection), база хранит данные в windows-1251 (настройка CHARACTER SET базы), и скрипт будет получать данные в windows-1251 (set_results).

Пробуй, должно работать.

Posted by: ego on 08-11-2005, 09:38
QUOTE:
$config['Mysqli']['charset'] = 'ср1251';

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

Дампером снимается бекап и заливается обратно все ок.Тоесть на форуме все выглядит чин чинарем а вот в базе самой каракули.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)