Перейти к контенту
  • 0

Конвертер базы на PHP для русской IP.Board 3


Ritsuka

Вопрос

На данный момент в инструкции очень много сложного понаписано про экспорт базы, конвертирование через iconv и обратный импорт... Но почему бы не задействовать PHP и MySQL, они же прекрасно умеют конвертировать базы сами!

 

Вот примерный скрипт:

 <?php
// Database info

include("conf_global.php");

$dbhost = $INFO['sql_host'];
$dbuser = $INFO['sql_user'];
$dbpass = $INFO['sql_pass'];
$dbname = $INFO['sql_database'];

//---------------

header('Content-type: text/plain');

$dbconn = mysql_connect($dbhost, $dbuser, $dbpass) or die( mysql_error() );
$db = mysql_select_db($dbname) or die( mysql_error() );

$sql = "ALTER DATABASE `".$dbname."` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci";
$result = mysql_query($sql) or die( mysql_error() );
print "Database changed to UTF-8.\n";

$sql = 'SHOW TABLES';
$result = mysql_query($sql) or die( mysql_error() );

while ( $row = mysql_fetch_row($result) )
{
$table = mysql_real_escape_string($row[0]);
$sql = "ALTER TABLE $table DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci, CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci";
mysql_query($sql) or die( mysql_error() );
print "$table changed to UTF-8.\n";
}

mysql_close($dbconn);
?>

 

Что думают об этом специалисты ibresource?

 

Только что успешно сконвертировал этим скриптом свой немалый форум, заняло порядка 20 сек... Для крупных форумов конечно имеет смысл сделать потабличное конвертирование через ajax...

Изменено пользователем Ritsuka
  • Лайк 1
Ссылка на комментарий
Поделиться на других сайтах

  • Ответы 103
  • Создана
  • Последний ответ

Лучшие авторы в этом вопросе

Лучшие авторы в этом вопросе

Загружено фотографий

Рекомендуемые сообщения

  • 0
Warning: Cannot modify header information - headers already sent by (output started at /home6/******/public_html/forum/convert.php:1) in /home6/mainazco/public_html/forum/convert.php on line 13

 

Warning: mysql_connect() [function.mysql-connect]: Access denied for user '******'@'localhost' (using password: NO) in /home6/******/public_html/forum/convert.php on line 15

Access denied for user '******'@'localhost' (using password: NO)

 

вот такая вот ошибка

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Сапорты ибресурса, расскажите пожалуйста подробно для не недоразвитых, как мне конвертнуть сваю базу весом чуть больше одного гектара? вашу инструкцию прочитал под стол просто упал! автору этой темы респект так как у меня хоть какой то прогресс намучается ( надеюсь иероглифами всё не покроется). суть вопроса как всё токи благодаря иб ресурсу можно конвертнуть базу бесплатно???!!! Изменено пользователем Neryungri
Ссылка на комментарий
Поделиться на других сайтах

  • 0

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

 

Если хотите привлечь мозги наших специалистов, вам посчитают сколько это будет стоить.

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Мда! не какова спектра услуг! такое чувство что ибресурс хочет просто срубить денег не больше. жадность фраера сгубила ребята.
Ссылка на комментарий
Поделиться на других сайтах

  • 0

Neryungri, вы одиноки в этом чувстве, поэтому прошу завязывать с оффтопом в данной теме.

 

Конвертирование форума стоит у IBR от 700 рублей, у школьников с фриланса - от 10 руб, самостоятельно - 0 рублей. У каждого варианта есть свои плюсы и минусы, решать в конечном итоге вам, однако, опираясь на первое впечатление от ваших реплик, рекоммендую вам обратиться к профессионалам и не жадничать в вопросах стабильности и безопасности вашего форума.

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Почему когда конвертирую базу вашим скриптом у меня всё в кракозябли превращается?
Ссылка на комментарий
Поделиться на других сайтах

  • 0

В phpMyAdmin смотрели базу? Если в браузере таблица постов ibf_posts отображается нормально при установленной кодировке браузера UTF8, то посмотри мои посты на предыдущих страницах: надо сделать еще 2 вещи в настройках форума (выставить в админке кодировку UTF8, и conf_global.php добавить $INFO['sql_charset'] = 'UTF8':D.

 

------------------

У знакомых мельком взглянул на русскую версию IPB, там в коде, под windows-сервера зачем-то все в cp1251 перекодируют. Зачем? Или я ошибаюсь?

Ссылка на комментарий
Поделиться на других сайтах

  • 0
где можно найти пошаговую информачию по обновлению булки с блогами и галереей +менеджером файлов в ipb3 подскажите пожалуйста. еще на булке стоят хаки, с ними что делать? удолять?
Ссылка на комментарий
Поделиться на других сайтах

  • 0
Neryungri, вы одиноки в этом чувстве, поэтому прошу завязывать с оффтопом в данной теме.

 

Конвертирование форума стоит у IBR от 700 рублей, у школьников с фриланса - от 10 руб, самостоятельно - 0 рублей. У каждого варианта есть свои плюсы и минусы, решать в конечном итоге вам, однако, опираясь на первое впечатление от ваших реплик, рекоммендую вам обратиться к профессионалам и не жадничать в вопросах стабильности и безопасности вашего форума.

Скажите пожалуйста где можно увидеть официальные инструкции для конвертирования форума?

Ссылка на комментарий
Поделиться на других сайтах

  • 0
спасибо, скрипт помог! но дальше вот проблема...

не обновляеться форум :D

 

У меня такое было, когда я пыталась запустить upgrade на БД созданной инсталлятором IPB3, иначе оно бы написало, что найдена 2-я версия форума и предложило б апгрейд. Но у меня и с этим проблема, апгрейдер зацикливается на 2-м шаге и возвращается обратно к 1-му. Не знаю что делать, начала сама вручную конвертить, посты, топики, форумы, категории, пользователи, ранги, группы отображаются, проблема с аватарами, для вновь созданного юзера отображается его аватара, а для старых не хочет, хотя залила в папочку upload все файлы аватарок со старого форума, ведь вид основной аватары не изменился av-{user_id}.jpg, почему тогда на форуме не хочет отображаться? Пересмотрела все страницы где присутствует аватара(профиль, пост, список юзеров) ни на одной странице нету%) Плюс с правами на форумы и категории не могу разобраться, структура БД довольно таки заметно изменилась и я не могу понять как преобразовать права из старого в новый вид, приходится заходить в админку и выставлять флажки по новому, они все сняты.

Ссылка на комментарий
Поделиться на других сайтах

  • 0
огромное спасибо Ritsuka за этот скрипт! помог! очень признателен! :D как сказать, чувствительно благодарен!
Ссылка на комментарий
Поделиться на других сайтах

  • 0
Спасибо Ritsuka за скрипт. Сконвертировал базу весом 3 Гб. Изменено пользователем 2х2
Ссылка на комментарий
Поделиться на других сайтах

  • 0

Ritsuka, у нас возникла проблема, все перекодировалось кроме ibf_upgrade_sessions и ни вкакую, ни в ручную ни запросами не кодируется, подскажите как быть в такой ситуации? Обновление форума не проходит.

 

Торможу))) заработало) уряяя

Изменено пользователем Evrika
Ссылка на комментарий
Поделиться на других сайтах

  • 0
На данный момент в инструкции очень много сложного понаписано про экспорт базы, конвертирование через iconv и обратный импорт... Но почему бы не задействовать PHP и MySQL, они же прекрасно умеют конвертировать базы сами!

 

Вот примерный скрипт:

 <?php
// Database info

include("conf_global.php");

$dbhost = $INFO['sql_host'];
$dbuser = $INFO['sql_user'];
$dbpass = $INFO['sql_pass'];
$dbname = $INFO['sql_database'];

//---------------

header('Content-type: text/plain');

$dbconn = mysql_connect($dbhost, $dbuser, $dbpass) or die( mysql_error() );
$db = mysql_select_db($dbname) or die( mysql_error() );

$sql = "ALTER DATABASE `".$dbname."` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci";
$result = mysql_query($sql) or die( mysql_error() );
print "Database changed to UTF-8.\n";

$sql = 'SHOW TABLES';
$result = mysql_query($sql) or die( mysql_error() );

while ( $row = mysql_fetch_row($result) )
{
$table = mysql_real_escape_string($row[0]);
$sql = "ALTER TABLE $table DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci, CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci";
mysql_query($sql) or die( mysql_error() );
print "$table changed to UTF-8.\n";
}

mysql_close($dbconn);
?>

 

Я извиняюсь за нубячиский вопрос, а куда и как его вставлять?

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Пробую на локали поставить

<b>Fatal error</b>: Maximum execution time of 60 seconds exceeded in <b>C:\xampp\htdocs\convert.php</b> on line <b>29</b><br />

пишет вот это,

подскажите в php.ini значение это надо изменить? на какое? (поставил 720, то же самое), заранее спасибо

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

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

Гость
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.