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

IPB 2.1x & MySQL 5


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

Как Вы видите, пятая версия MySql набирает обороты.

 

До создания темы я читал форум, но решения своей проблемы не нашел.

 

Проблема появляется, когда запрос содержит больше чем одну таблицу в области FROM. Та же самая проблема случилась на моих трех являющихся главным серверах, когда я обновился с MySQL 4.1.12 к MySQL 5.0.15: я имел ошибку, говоря, что mysql не мог найти столбец X в где пункт.

 

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

 

Начальный файл : sources/sql/mysql_queries.php

 

Найдите функцию msg_get_cc_users и замените ее НА:

		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
					INNER JOIN ".SQL_PREFIX."groups g ON m.mgroup=g.g_id
					LEFT JOIN ".SQL_PREFIX."member_extra me ON (m.id=me.id)
					   WHERE LOWER(m.members_display_name) IN (".implode(",",$a['name_array']).")";
	}

 

После этого пользователи будут в состоянии сделать сообщения снова!

Следующий шаг в ips_kernel/class_db_mysql.php:

Найдите строчку "if ( $join['type'] == 'inner' )" в функции simple_select_with_join и замените ее содержимое:

if ( $join['type'] == 'inner' )
					{
						  # Join is inline
						  $from_array[]  = $join['from'];

						  if ( $join['where'] )
						  {
								  $where_array[] = $join['where'];
						 }

На

						if ( $join['type'] == 'inner' )
					{
							# Join is inner
							$tmp = " INNER JOIN ";
							foreach( $join['from'] as $tbl => $alias )
									$tmp .= $this->obj['sql_tbl_prefix'].$tbl.' '.$alias;
							if ( $join['where'] ) {
									$tmp .= " ON ( ".$join['where']." ) ";
							}
							$joinleft_array[] = $tmp;
							unset($tmp);

Это далеко от совершенства, но оно позволит Вам пснова олучать доступ к вашей admin панели.

©

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

Да надо просто запросы переписать. Тут где-то тема была.
Ссылка на комментарий
Поделиться на других сайтах

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

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

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

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

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

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

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

Зарузка...
×
×
  • Создать...

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

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