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

IPB 2.1.x, mySQL 5


.silent

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

Исправляем ошибки, допущенные в запросах товарищами 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 за пополнение списка

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

  • 1 месяц спустя...
  • Ответы 123
  • Создана
  • Последний ответ

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

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

У меня проблема с личкой на 2.0.4. Как я понял из-за этого... Так вот я изменяю под свою версию, то что в скобках. Но вот в class_db_mysql.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.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";
}

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

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

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

:D

 

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

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

.silent

 

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

 

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

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

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

 

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

 

SQL Version: MYSQL (5.0.18)

PHP Version: 5.1.2 (apache2handler)

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

.silent

 

вообщем есть места в админке и не только в админке про которые ты забыл, ну да ладно :D

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

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

ну, у меня больше проблем не возникало.

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

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

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

 

я и не говорил это :D

просто например в mysql_queryes есть функции такие как contact_member_report_get_mods, contact_member_report_get_cpaccess, contact_member_report_get_supmod

 

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

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

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

 

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

 

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

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

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

 

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

к 5ой версии mySQL никакого отношения не имеет.

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

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

 

 

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

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

Проблема такого рода:

При установке 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

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

  • 3 недели спустя...

На сервере стоит: Apache 2.0.55/PHP 5.1.2/MySQL 5.0.19/

При инсталяции ipb 2.1.4. возникает такая ошибка:

Warning! 

The following errors must be rectified before continuing!
Please go back and try again! 

INSERT INTO ibf_task_manager VALUES ('', 'Update Topic Views Counter', 'updateviews.php', 1144026807, -1, -1, 3, -1, 'ddce954b5ba1c163bc627ca20725b595', 0, 'Used when topic views are not incremented immediately', 1, 'updateviews', 0, 0);

Out of range value adjusted for column 'task_id' at row 1

Заранее благодарен.

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

идите в пень, люди. кто еще напишет не по теме - убью нахрен.

для общих ошибок есть отдельный топик с ошибками SQL.

 

не удивляюсь что так не любят 5ую mySQL - если все ошибки валить на нее, то да, конечно.

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


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

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

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