Форумы IBResource: IPB 2.1.x, mySQL 5 - Форумы IBResource

Перейти к содержимому

  • (7 Страниц)
  • +
  • 1
  • 2
  • 3
  • Последняя »
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

IPB 2.1.x, mySQL 5 проблемы совместимости. исправляем.

#1 Пользователь офлайн   .silent 

  • Группа: Участники
  • Сообщений: 2 133
  • Регистрация: 12 Май 04

Отправлено 02 Февраль 2006 - 16:33

Исправляем ошибки, допущенные в запросах товарищами IPS.
Даже не ошибки, а просто не учли они одну мелочь.
Часто просто такие вопросы вижу, вот и решил написать что и где надо поправить.

ips_kernel/class_db_mysql.php

ищем:
		$get   = implode( ","	 , $select_array   );
		$table = implode( ","	 , $final_from	 );
		$where = implode( " AND " , $where_array	);
		$join  = implode( "\n"	, $joinleft_array );
добавляем ниже
		if ( count($final_from) > 1 )
			$table = "(".$table.")";

код, так сказать на будущее. сам наблюдал только один запрос, проходящий через эту функцию с ошибкой.

ну и теперь редактируем файлы-хранилища запросов ipb.

sources/sql/mysql_queries.php

ищем:
	function msg_get_cc_users( $a )
	{
	
		return "SELECT m.mgroup_others, m.id, m.name, m.members_disable_pm, m.members_display_name, m.msg_total, m.view_pop, m.email_pm, m.language, m.email, me.vdirs, g.g_max_messages, g.g_use_pm FROM ".SQL_PREFIX."members m, ".SQL_PREFIX."groups g
				LEFT JOIN ".SQL_PREFIX."member_extra me ON (m.id=me.id)
			   WHERE LOWER(m.members_display_name) IN (".implode(",",$a['name_array']).")
			   AND m.mgroup=g.g_id";
	}
, меняем на
	function msg_get_cc_users( $a )
	{
	
		return "SELECT m.mgroup_others, m.id, m.name, m.members_disable_pm, m.members_display_name, m.msg_total, m.view_pop, m.email_pm, m.language, m.email, me.vdirs, g.g_max_messages, g.g_use_pm FROM (".SQL_PREFIX."members m, ".SQL_PREFIX."groups g)
				LEFT JOIN ".SQL_PREFIX."member_extra me ON (m.id=me.id)
			   WHERE LOWER(m.members_display_name) IN (".implode(",",$a['name_array']).")
			   AND m.mgroup=g.g_id";
	}

ищем:
	function portal_get_poll_join( $a )
	{
		return "SELECT t.tid, t.title, t.state, t.last_vote, p.*, v.member_id as member_voted
				FROM ".SQL_PREFIX."topics t, ".SQL_PREFIX."polls p
				LEFT JOIN ".SQL_PREFIX."voters v ON (v.member_id={$a['mid']} and v.tid=t.tid)
				WHERE t.tid={$a['tid']} AND p.tid=t.tid";
	}
, меняем на:
	function portal_get_poll_join( $a )
	{
		return "SELECT t.tid, t.title, t.state, t.last_vote, p.*, v.member_id as member_voted
				FROM (".SQL_PREFIX."topics t, ".SQL_PREFIX."polls p)
				LEFT JOIN ".SQL_PREFIX."voters v ON (v.member_id={$a['mid']} and v.tid=t.tid)
				WHERE t.tid={$a['tid']} AND p.tid=t.tid";
	}

ищем:
	function contact_member_report_get_mods( $a )
	{
		return "SELECT m.id, m.members_display_name as name, m.members_disable_pm, m.email, m.mgroup, moderator.member_id, moderator.group_id
				FROM ".SQL_PREFIX."moderators moderator, ".SQL_PREFIX."members m
				WHERE moderator.forum_id={$a['fid']}
				AND (moderator.member_id=m.id OR moderator.group_id=m.mgroup)";
	}
, меняем на:
	function contact_member_report_get_mods( $a )
	{
		return "SELECT m.id, m.members_display_name as name, m.members_disable_pm, m.email, m.mgroup, moderator.member_id, moderator.group_id
				FROM (".SQL_PREFIX."moderators moderator, ".SQL_PREFIX."members m)
				WHERE moderator.forum_id={$a['fid']}
				AND (moderator.member_id=m.id OR moderator.group_id=m.mgroup)";
	}

ищем:
	function contact_member_report_get_cpaccess( $a )
	{
		return "SELECT m.id, m.members_display_name as name, m.email, m.members_disable_pm FROM ".SQL_PREFIX."members m, ".SQL_PREFIX."groups g WHERE g.g_access_cp=1 AND m.mgroup=g.g_id";
	}
, меняем на:
	function contact_member_report_get_cpaccess( $a )
	{
		return "SELECT m.id, m.members_display_name as name, m.email, m.members_disable_pm FROM (".SQL_PREFIX."members m, ".SQL_PREFIX."groups g) WHERE g.g_access_cp=1 AND m.mgroup=g.g_id";
	}

ищем:
	function contact_member_report_get_supmod( $a )
	{
		return "SELECT m.id, m.members_display_name as name, m.email, m.members_disable_pm FROM ".SQL_PREFIX."members m, ".SQL_PREFIX."groups g WHERE g.g_is_supmod=1 AND m.mgroup=g.g_id";
	}
, меняем на:
	function contact_member_report_get_supmod( $a )
	{
		return "SELECT m.id, m.members_display_name as name, m.email, m.members_disable_pm FROM (".SQL_PREFIX."members m, ".SQL_PREFIX."groups g) WHERE g.g_is_supmod=1 AND m.mgroup=g.g_id";
	}


спасибо SAT за пополнение списка
0

#2 Пользователь офлайн   headhanter 

  • Группа: Участники
  • Сообщений: 132
  • Регистрация: 30 Апрель 05

Отправлено 09 Март 2006 - 11:15

У меня проблема с личкой на 2.0.4. Как я понял из-за этого... Так вот я изменяю под свою версию, то что в скобках. Но вот в class_db_mysql.php я не могу найти похожих строк...
0

#3 Пользователь офлайн   .silent 

  • Группа: Участники
  • Сообщений: 2 133
  • Регистрация: 12 Май 04

Отправлено 09 Март 2006 - 11:39

headhanter, если проблемы с личкой, то просто изменений со скобками должно хватить. попробуйте.
0

#4 Пользователь офлайн   headhanter 

  • Группа: Участники
  • Сообщений: 132
  • Регистрация: 30 Апрель 05

Отправлено 09 Март 2006 - 11:57

Не помогает...
Вот код, который вставляю:
function msg_get_cc_users( $a )
	{
	
		return "SELECT m.mgroup_others, m.id, m.name, m.members_disable_pm, m.members_display_name, m.msg_total, m.view_pop, m.email_pm, m.language, m.email, me.vdirs, g.g_max_messages, g.g_use_pm FROM (".SQL_PREFIX."members m, ".SQL_PREFIX."groups g)
				LEFT JOIN ".SQL_PREFIX."member_extra me ON (m.id=me.id)
			   WHERE LOWER(m.name) IN (".implode(",",$a['name_array']).")
			   AND m.mgroup=g.g_id";
	}

и
function portal_get_poll_join( $a )
	{
		return "SELECT t.tid, t.title, t.state, t.last_vote, p.*, v.member_id as member_voted
				FROM (".SQL_PREFIX."topics t, ".SQL_PREFIX."polls p)
				LEFT JOIN ".SQL_PREFIX."voters v ON (v.member_id={$a['mid']} and v.tid=t.tid)
				WHERE t.tid={$a['tid']} AND p.tid=t.tid";
	}

0

#5 Пользователь офлайн   .silent 

  • Группа: Участники
  • Сообщений: 2 133
  • Регистрация: 12 Май 04

Отправлено 09 Март 2006 - 12:16

ты не код показывай который изменяешь, а ошибку что выдает форум.
я с 2.0.х уже 3 месяца назад слез.
0

#6 Пользователь офлайн   headhanter 

  • Группа: Участники
  • Сообщений: 132
  • Регистрация: 30 Апрель 05

Отправлено 09 Март 2006 - 12:19

Цитата

mySQL query error: SELECT m.mgroup_others, m.id, m.name, m.members_disable_pm, m.members_display_name, m.msg_total, m.view_pop, m.email_pm, m.language, m.email, me.vdirs, g.g_max_messages, g.g_use_pm FROM (ibf_members m, ibf_groups g)
LEFT JOIN ibf_member_extra me ON (m.id=me.id)
WHERE LOWER(m.name) IN ('veliar')
AND m.mgroup=g.g_id

mySQL error: Unknown column 'm.members_disable_pm' in 'field list'
mySQL error code:
Date: Thursday 09th 2006f March 2006 12:22:28 PM

0

#7 Пользователь офлайн   .silent 

  • Группа: Участники
  • Сообщений: 2 133
  • Регистрация: 12 Май 04

Отправлено 09 Март 2006 - 13:00

:D

я не буду ничего отвечать, вы меня задолбали все. неужели трудно понять прежде чем тупо делать копи-паст из решения для 2.1.х, когда у самих 2.0.х.
0

#8 Пользователь офлайн   headhanter 

  • Группа: Участники
  • Сообщений: 132
  • Регистрация: 30 Апрель 05

Отправлено 09 Март 2006 - 13:21

Сразу бы так! Спасибо проблема решилась. :D
0

#9 Пользователь офлайн   SAT 

  • -=Mr.Devil=-
  • Группа: Участники
  • Сообщений: 997
  • Регистрация: 28 Сентябрь 04

Отправлено 09 Март 2006 - 22:48

.silent

намного больше чем в двух местах, например в оповещении модератора

а вообще поддержка MySQL 5 по словам IPS будет в версии форума 2.2.x, т.е. можно попросить будет и версию под 4 и под 5, ну вообщем такике же варианты и под оракл есть только платные, все у IPS :D
0

#10 Пользователь офлайн   .silent 

  • Группа: Участники
  • Сообщений: 2 133
  • Регистрация: 12 Май 04

Отправлено 10 Март 2006 - 07:29

Цитата

намного больше чем в двух местах, например в оповещении модератора
ты о чем? :D

у меня на сервере:

SQL Version: MYSQL (5.0.18)
PHP Version: 5.1.2 (apache2handler)
0

#11 Пользователь офлайн   SAT 

  • -=Mr.Devil=-
  • Группа: Участники
  • Сообщений: 997
  • Регистрация: 28 Сентябрь 04

Отправлено 10 Март 2006 - 20:30

.silent

вообщем есть места в админке и не только в админке про которые ты забыл, ну да ладно :D
но оофициальная поддержка будет с 2.2, вообщем погляжу сам может сам каких мест не знаю где еще надо править для безбажной работы на пятерке
0

#12 Пользователь офлайн   .silent 

  • Группа: Участники
  • Сообщений: 2 133
  • Регистрация: 12 Май 04

Отправлено 10 Март 2006 - 22:15

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

#13 Пользователь офлайн   SAT 

  • -=Mr.Devil=-
  • Группа: Участники
  • Сообщений: 997
  • Регистрация: 28 Сентябрь 04

Отправлено 10 Март 2006 - 22:26

Цитата

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


я и не говорил это :D
просто например в mysql_queryes есть функции такие как contact_member_report_get_mods, contact_member_report_get_cpaccess, contact_member_report_get_supmod

лично у меня была ошибка там, ну да ладно...
0

#14 Пользователь офлайн   Droy 

  • Группа: Участники
  • Сообщений: 6
  • Регистрация: 22 Февраль 06

Отправлено 11 Март 2006 - 12:37

Ребят, подскажите пожалуйста. Проблема в написании сообщений. Сначала при попытке написать сообщения выдавал "Duplicaty entry '128' key '1' " (Ну или как-то так, в обшем не хотел писать 128-ое сообщение из-за, того, что оно существует, хотя его на самом деле не было), я тогда решил через бд сразу добавить сообщение с id 129. Тогда писать сообщения стало возможным, НО теперь при попытке отредактировать пишет:

SQL error: Incorrect key file for table 'ibf_posts'; try to repair it

Я не понял, какой файл с ключом? оО
0

#15 Пользователь офлайн   .silent 

  • Группа: Участники
  • Сообщений: 2 133
  • Регистрация: 12 Май 04

Отправлено 11 Март 2006 - 13:38

SAT, спасибо, список пополнил

Droy, у тебя ключ по графе post для полнотекстового поиска размерностью в 1 скорее всего.
к 5ой версии mySQL никакого отношения не имеет.
0

#16 Пользователь офлайн   Droy 

  • Группа: Участники
  • Сообщений: 6
  • Регистрация: 22 Февраль 06

Отправлено 11 Март 2006 - 17:43

Ой, извеняюсь, у меня правда не 5 мускул а 4.1, а всё же не подскажите, как решить проблему?
0

#17 Пользователь офлайн   .silent 

  • Группа: Участники
  • Сообщений: 2 133
  • Регистрация: 12 Май 04

Отправлено 11 Март 2006 - 22:14

Droy, подскажем в другом топике.
0

#18 Пользователь офлайн   Vic'er 

  • Группа: Участники
  • Сообщений: 1 212
  • Регистрация: 10 Март 05

Отправлено 12 Март 2006 - 02:45

Цитата

а вообще поддержка MySQL 5 по словам IPS будет в версии форума 2.2.x
угу... конечно...конечно же мы все верим, что пятый ПХП, а равно и пятый мускуль таки получат путевку в жизнь)))))))))))))))))))))))))))))))))))))))))))))))))))


тов. админы - забить давно пора на эти две ущербные ветки эволюции. возможно мускуль пятый и переродится в сосвершенно новую систему MySQL, но никак уж не такое гавнецо, как PHP5 - ему еще макс. годик можно отвести, и то при больших натяжках...
0

#19 Пользователь офлайн   .silent 

  • Группа: Участники
  • Сообщений: 2 133
  • Регистрация: 12 Май 04

Отправлено 12 Март 2006 - 12:45

:D
0

#20 Пользователь офлайн   Snowman 

  • Группа: Участники
  • Сообщений: 3
  • Регистрация: 05 Март 06

Отправлено 12 Март 2006 - 16:37

Проблема такого рода:
При установке IPB 2.1.4 вылетает ошибка

Цитата

Внимание!

Указанные ниже ошибки должны быть обязательно исправлены перед тем, как продолжить!
Пожалуйста, вернитесь назад и попробуйте снова!

CREATE TABLE ibf_rss_import ( rss_import_id int(10) NOT NULL auto_increment, rss_import_enabled tinyint(1) NOT NULL default '0', rss_import_title varchar(255) NOT NULL default '', rss_import_url varchar(255) NOT NULL default '', rss_import_forum_id int(10) NOT NULL default '0', rss_import_mid mediumint(8) NOT NULL default '0', rss_import_pergo smallint(3) NOT NULL default '0', rss_import_time smallint(3) NOT NULL default '0', rss_import_last_import int(10) NOT NULL default '0', rss_import_showlink varchar(255) NOT NULL default '0', rss_import_topic_open tinyint(1) NOT NULL default '0', rss_import_topic_hide tinyint(1) NOT NULL default '0', rss_import_inc_pcount tinyint(1) NOT NULL default '0', rss_import_topic_pre varchar(50) NOT NULL default '', rss_import_charset VARCHAR(200) NOT NULL default '', rss_import_allow_html TINYINT(1) NOT NULL default '0', rss_import_auth TINYINT( 1 ) DEFAULT '0' NOT NULL , rss_import_auth_user VARCHAR( 255 ) DEFAULT 'Не требуется' NOT NULL, rss_import_auth_pass VARCHAR( 255 ) DEFAULT 'Не требуется' NOT NULL, PRIMARY KEY (rss_import_id) ) TYPE=MyISAM;

Invalid default value for 'rss_import_auth_user'

PHP 5.1.1 (cp1251)
MySQL 5.0.18 (cp1251)

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

Цитата

Внимание!

Указанные ниже ошибки должны быть обязательно исправлены перед тем, как продолжить!
Пожалуйста, вернитесь назад и попробуйте снова!

INSERT INTO ibf_cache_store (cs_key, cs_value, cs_extra, cs_array) VALUES ('portal', 'a:6:{s:5:"blogs";a:5:{s:8:"pc_title";s:30:"Invision Community Blog";s:7:"pc_desc";s:40:"Показ информации от блога в портале";s:19:"pc_settings_keyword";s:0:"";s:18:"pc_exportable_tags";a:1:{s:25:"blogs_show_last_updated_x";a:2:{i:0;s:25:"blogs_show_last_updated_x";i:1;s:30:"Shows the last X updated blogs";}}s:6:"pc_key";s:5:"blogs";}s:8:"calendar";a:5:{s:8:"pc_title";s:29:"Invision Power Board Календарь";s:7:"pc_desc";s:46:"Отображает мини-календарь для текущего месяца";s:19:"pc_settings_keyword";s:0:"";s:18:"pc_exportable_tags";a:1:{s:27:"calendar_show_current_month";a:2:{i:0;s:27:"calendar_show_current_month";i:1;s:38:"Показывает календарь на текущий месяц";}}s:6:"pc_key";s:8:"calendar";}s:7:"gallery";a:5:{s:8:"pc_title";s:22:"Invision Power Gallery";s:7:"pc_desc";s:54:"Отображает на портале информацию с галереи";s:19:"pc_settings_keyword";s:0:"";s:18:"pc_exportable_tags";a:1:{s:25:"gallery_show_random_image";a:2:{i:0;s:25:"gallery_show_random_image";i:1;s:44:"Показывается случайное изображение из пользовательской галереи";}}s:6:"pc_key";s:7:"gallery";}s:12:"online_users";a:5:{s:8:"pc_title";s:33:"Invision Power Board Активные Пользователи";s:7:"pc_desc";s:49:"Показывае имена текущих пользователей в онлайне";s:19:"pc_settings_keyword";s:0:"";s:18:"pc_exportable_tags";a:1:{s:17:"online_users_show";a:2:{i:0;s:17:"online_users_show";i:1;s:22:"Показывает активных пользователей";}}s:6:"pc_key";s:12:"online_users";}s:4:"poll";a:5:{s:8:"pc_title";s:25:"Invision Power Board Опрос";s:7:"pc_desc";s:23:"Показывает выбранный опрос";s:19:"pc_settings_keyword";s:11:"portal_poll";s:18:"pc_exportable_tags";a:1:{s:14:"poll_show_poll";a:2:{i:0;s:14:"poll_show_poll";i:1;s:22:"Shows the request poll";}}s:6:"pc_key";s:4:"poll";}s:13:"recent_topics";a:5:{s:8:"pc_title";s:34:"Invision Power Board Последние Темы";s:7:"pc_desc";s:47:"Показывает последние темы с первым сообщением в них";s:19:"pc_settings_keyword";s:20:"portal_recent_topics";s:18:"pc_exportable_tags";a:2:{s:20:"recent_topics_last_x";a:2:{i:0;s:20:"recent_topics_last_x";i:1;s:63:"Показывает X последних тем с первым сообщением в них из выбранных форумов";}s:32:"recent_topics_discussions_last_x";a:2:{i:0;s:32:"recent_topics_discussions_last_x";i:1;s:54:"Показывает X заголовков тем из всех видимых форумов";}}s:6:"pc_key";s:13:"recent_topics";}}', '', 1);

Data too long for column 'cs_value' at row 1

0

Поделиться темой:


  • (7 Страниц)
  • +
  • 1
  • 2
  • 3
  • Последняя »
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей